测试之家
  • 社区
  • 问答
  • 招聘
  • 社区学堂新
  • 开源项目
  • 活动
  • Wiki
  • 注册
  • 登录
新手
icycloud_dong (迷死特囧)
第 8891 位会员 / 2016-05-03
平安科技 @ 上海
0 篇帖子 • 5 条回帖
0 关注者
3 正在关注
5 收藏
未设置 GitHub 信息.
  • 个人信息
  • 专栏
  • 话题
  • 回帖
  • 收藏
  • 关注中
  • 关注者
  • [上海] 平安人寿急聘测试开发工程师 at 2019年09月30日

    报个到

  • 有这样的测试,开发只能献上膝盖 at 2019年01月19日

    站在项目角度、客户角度,有问题解决问题,资源总是有限的,一定是有取舍的,至于具体的措辞态度,对人下菜了,毕竟有的开发喜欢攻,有的开发喜欢受

  • 招 2 个测试开发工程师 / 自动化测试工程师 at 2018年12月29日

    叫兽,我还是来跟你混可好?

  • [深圳] 中国平安人寿保险股份有限公司 - 科技中心:招聘 测试工程师 (年终奖 4-12 月)---重启招聘,测开暂时没编制,来吧简历雨!!! at 2018年10月30日

    同是养老险,已离职

  • 某司面试题,输入任意一个数字 n,产生九宫格 n 位手势密码,例如输入 4,则产生的 (1,2,3,6)、(1,4,7,8) 都可以。九宫格规则是:数字只能连相邻的数字,且不能出现重复。请问使用 python 如何实现,谢谢。 at 2018年10月04日

    1、定义 base_dict = {1: [2, 4, 5], 2: [1, 3, 4, 5, 6], 3: [2, 5, 6], 4: [1, 2, 5, 7, 8], 5: [1, 2, 3, 4, 6, 7, 8, 9],
    6: [2, 3, 5, 8, 9], 7: [4, 5, 8], 8: [4, 5, 6, 7, 9], 9: [5, 6, 8]}
    2、递归获取 n 位密码。递归思路:n-1 位密码的列表逐个判断是否可以再加 1 位,如果是则加 1 位变为新的 n 位密码放到 n 位密码列表;当 n-1 = 1 时,返回 [[1], [2], [3], [4], [5], [6], [7], [8], [9]]
    3、如何判断一个密码列表是否可以再加 1 位:全集 [1, 2, 3, 4, 5, 6, 7, 8, 9] 去掉当前密码已经使用的数字,与 base_dict[当前密码最后一位] 交集,如果交集长度大于 0,则可以再加 1 位
    以上基于 python3.6 实现,效率还是可以的

    def run():
        pw = PassWd(9)
        print(pw.passwd())
    
    
    class PassWd:
        def __init__(self, n):
            # self.start = random.randint(1, 9)
            self.n = n
            self.all = [1, 2, 3, 4, 5, 6, 7, 8, 9]
            self.besides = {1: [2, 4, 5], 2: [1, 3, 4, 5, 6], 3: [2, 5, 6],
                            4: [1, 2, 5, 7, 8], 5: [1, 2, 3, 4, 6, 7, 8, 9],
                            6: [2, 3, 5, 8, 9], 7: [4, 5, 8], 8: [4, 5, 6, 7, 9],
                            9: [5, 6, 8]}
    
        def passwd(self):
            print('n:%d' % self.n)
            res = self.generate_passwds(self.n)
            print('pwds_count:%d, pws:%s' % (len(res), res))
            return res[random.randint(0, len(res)-1)]
    
        def generate_passwds(self, count):
            if count == 1:
                return [[1], [2], [3], [4], [5], [6], [7], [8], [9]]
            new_res = []
            res = self.generate_passwds(count - 1)
            for pwd in res:
                numbers = self.next_numbers(pwd)
                if numbers:
                    for child in numbers:
                        new_res.append(pwd + [child])
            return new_res
    
        def next_numbers(self, pwd):
            numbers = list(set(self.all).difference(set(pwd)).intersection(set(self.besides[pwd[-1]])))
            return numbers
    
关于 / 活跃用户 / 中国移动互联网测试技术大会 / 反馈 / Github / API / 帮助推广
TesterHome社区,测试之家,由众多测试工程师组织和维护的技术社区,致力于帮助新人成长,提高测试地位,推进质量发展。Inspired by RubyChina
友情链接 WeTest腾讯质量开放平台 / InfoQ / 掘金 / SegmentFault / 测试窝 / 百度测试吧 / IT大咖说
简体中文 / 正體中文 / English

©testerhome.com 测试之家   渝ICP备2022001292号
  渝公网安备 50022202000435号    版权所有 © 重庆年云聚力信息技术有限公司