关于392号题:判断子序列
来源:10-1 贪心基础 Assign Cookies
蒙特卡洛
2019-08-05
请问老师,下面这个解法中
class Solution {
public boolean isSubsequence(String s, String t) {
int index = -1;
for (char c : s.toCharArray()){
index = t.indexOf(c, index+1);
if (index == -1) return false;
}
return true;
}
}
在增强型for循环中,每次执行一次后,第二次开始执行时index的值是不是还是为-1,并没有发生改变?
写回答
1回答
-
liuyubobobo
2019-08-05
其实我没有太理解你说的“开始执行时”是什么时候。
但是可以这样实际打印出 index 看一看?
class Solution { public boolean isSubsequence(String s, String t) { int index = -1; for (char c : s.toCharArray()){ System.out.println("index = " + index); // 在这里看看 index 是多少? index = t.indexOf(c, index+1); System.out.println("index = " + index); // 在这里再看看 index 是多少? if (index == -1) return false; } return true; } }
也可以使用单步跟踪的时候,实际观察一下,你关心的值,在你关心的位置,具体是多少?这是学习算法的重要方式哦。
加油。
062019-08-06
相似问题