2021/07/06阿里在线笔试—题目一复盘

这篇博客回顾了2021年阿里在线笔试的一道题目,涉及如何按字符串长度尝试密码以求最少和最多登录时间。题目要求按长度排序并尝试,每次尝试1秒,连续输错k次需等待5秒。最佳情况是找到最短密码,最坏情况是尝试所有同长度密码。解决方案包括统计不同长度密码的数量,考虑输错后的等待时间,并提供C++实现思路。
摘要由CSDN通过智能技术生成

题目

        有一个本子,小明在上面记录了常用的密码,总共有n个密码串,密码串长度不超过100。小明想要登录网站,密码本上含有该网址的登录密码,从密码本上短的开始尝试,当密码长度都相同时,以任意顺序输入密码串。

连续输错k次密码,等待5s后再输入密码

不论什么长度,输入一个密码时间都是1s

最好的情况下需要花费多久登录网站,最差的情况下需要花费多久登录网站。


题目大意:

        一堆不重复字符串,其中有一个是正确密码。按单词长度从小到大逐一尝试,同长度的单词可以是任意顺序的。输入一个密码需要1秒,每输错k个密码需要等5秒才能重新输入。问最少、最多需要多少秒能登录账号?

题目分析:

(1)密码的长度不超过100;

(2)采用计数排序,长度小于正确密码的每个都要尝试一次(count),最小尝试次数则是count加上1次(试同长度的第一个就试对),最大尝试次数是长度等于密码的个数(试到同长度的最后一个)。——相当于字符串内容不重要,字符串的长度很重要。

(3)在输入使用的总时长上再加上输错密码的等待时间,即是最少、最多需要的时间。

(4)这里要注意

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值