//判断sourceStr中是否有targetStr
public static boolean checkStr(String sourceStr,String targetStr) {}
你会怎么搞?
首先我们来分析一下。
假设我的密码是:250818。
要判断我输入的一串数字中是否也有 250818 这个序列存在,首先可以确定的是,我们要拿到这两个输入串,然后按照字符,逐个对比。
也就是要把 sourceStr、targetStr 转化为 char[],然后在 for 循环中逐一对比每个字符是否能对上。
而且因为有两个数组,所以这个 for 循环还得是双重 for 循环。
外层循环的是什么?
因为我们是要在 sourceStr,也就是用户输入的密码里面找正确的密码,所以外层循环的肯定得是 sourceStr。
拿着输入密码的第一个字符和 targetStr,也就是正确密码的字符串对应的整个数组进行逐一比较,如果匹配上了,再拿输入密码的后续字符和正确密码进行对比,循环往复,直到对比成功,或者整个输入串对比完成。
这就对应着第二层循环的逻辑。
大体思路还是非常清晰的,但是我们还要解决一个问题:外层 for 循环的次数是多少次?
假设下面这个 for 循环就是在循环 sourceStr,也就是我们要知道这里的 max 值应该是多少?
<blockquote data-tool="mdnice编辑器" >
for (int i = 0; i