LeetCode算法题–判断子序列
题目思路一:
使用java中的indexOf()方法。
代码如下:
class Solution {
public boolean isSubsequence(String s, String t) {
char[] arr = s.toCharArray();
int j = -1;
for(int i = 0; i < arr.length; ++i){
j = t.indexOf(arr[i], j + 1);//如果存在此字符,返回索引,否则返回-1
if(j == -1) return false;
}
return true;
}
}
执行结果:
时间复杂度:o(n);
题目思路一:
使用双指针
class Solution {
public boolean isSubsequence(String s, String t) {
int n = s.length();
int m = t.length();
int i = 0, j = 0;
char[] s1 = s.toCharArray();
char[] t1 = t.toCharArray();
while(i < n && j < m){
if(s1[i] == t1[j]){
++i;
++j;
} else {
++j;
}
}
return i == n;
}
}
执行结果:
时间复杂度:o(n)