歷次做演算法題目,今天耗時最短。題目原鏈結leetcode
給定字串 s 和 t ,判斷 s 是否為 t 的子串行。
你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長(長度 ~
=500
,000),而 s 是個短字串(長度 <=
100)。
字串的乙個子串行是原始字串刪除一些(也可以不刪除)字元而不改變剩餘字元相對位置形成的新字串。(例如,"ace"是"abcde"的乙個子串行,而"aec"不是)。
示例 1
:s =
"abc"
, t =
"ahbgdc"
返回 true.
示例 2
:s =
"axc"
, t =
"ahbgdc"
返回 false.
如果一樣, 就拿s 的下乙個字母和 t 的下乙個字母比較
public boolean issubsequence
(string s, string t)
j++;// 不論相同與否,j 的下標都後移一位
}return i == slen;
}
官方題解中,除了雙指標外,還給出了動態規劃的解法,有興趣的可以看一下。我覺得雙指標已經完美解決問題,並且效能、記憶體消耗雙百。動態規劃有點大材小用了。
判斷子串行 雙指標)
給定字串 s 和 t 判斷 s 是否為 t 的子串行。你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長 長度 500,000 而 s 是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變剩餘字元相對位置形成的新字串。例如,ace 是 abcde ...
判斷子串行
給定字串 s 和 t 判斷 s 是否為 t 的子串行。你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長 長度 500,000 而 s 是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變剩餘字元相對位置形成的新字串。例如,ace 是 abcde ...
子串行判斷
如下 class solution return true 字母ab yz鍊錶 索引1,索引2,索引 索引索引 判斷子串行,高階 有k個子序列,判斷是否是t的子串行 public static boolean issubsequence string s,string t else int p 1 ...