给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
难度:🌟
示例 1:
输入:s = "abc", t = "ahbgdc"
输出:true
示例 2:
输入:s = "axc", t = "ahbgdc"
输出:false
提示:
这题比较简单,通过使用双指针p,i分别指向s,t,一边前进一边匹配子序列。
func isSubsequence(s string, t string) bool {
ns, nt := len(s), len(t)
if ns > nt {
return false
}
if ns == 0 {
return true
}
var p = 0 // 指向 s 中的元素
for i := 0; i < nt; i++ {
if s[p] == t[i] { // 如果能找到匹配的元素
p++
}
if p == ns {
return true
}
}
return false
}