给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
输入:s = "abc", t = "ahbgdc"
输出:true
输入:s = "axc", t = "ahbgdc"
输出:false
循环计算索引和子串
let isSubsequence = (s, t) => {
let idx = -1;
for (const value of s) {
idx = t.indexOf(value, idx + 1);
if (idx === -1)
return false;
}
return true;
}
console.log(isSubsequence("abc", "ahbqdc"))
console.log(isSubsequence("axc", "ahbqdc"))
func isSubsequence(s string, t string) bool {
idx := -1
for _, c := range s {
tmp := t[idx + 1:]
idx = strings.IndexRune(tmp, c)
if idx == -1 {
return false
}
}
return true
}
class Solution {
public boolean isSubsequence(String s, String t) {
// 这里用到了String到indexof
int inx = -1;
for (char c : s.toCharArray()) {
inx = t.indexOf(c, inx + 1);
if (inx == -1) return false;
}
return true;
}
}