当以下条件都满足时,一个密码被视为是强密码:
1.至少包含6个字符,但不超过20个字符。
2.至少包含一个小写字母,一个大写字母,和一个数字。
3.不能包含三个连续的重复字符("…aaa…“是弱密码,但”…aa…a…"是强密码,假设它们的其他条件都满足了)。
写一个函数strongPasswordChecker(s),它将一个字符串s作为输入,并且返回将其转换成强密码需要的最少改变次数。如果s已经是一个强密码了,返回0。
插入、删除或者替换任意一个字符都视为一次改变。
样例 1:
输入:"aaa123"
输出:1
解释:"aaa123"->"aaA123"
样例 2:
输入:"a"
输出:5
解释:"a"->"aa"->"aaA"->"aaA1"->"aaA12"->"aaA123"
【题解】
- 考点:
思维
题解:本题根据要求最小的改变次数,确定修改策略即可。
变为强密码需要解决三种问题: - 长度小于6时需要插入字符,长度大于20时需要删除字符
- 缺失字符或数字ÿ