关于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;
    }
}


也可以使用单步跟踪的时候,实际观察一下,你关心的值,在你关心的位置,具体是多少?这是学习算法的重要方式哦。


加油。

0
6
liuyubobobo
回复
蒙特卡洛
继续加油!:)
2019-08-06
共6条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程