Try   HackMD

leetcode解題:(Easy) 392. Is Subsequence

題目:https://leetcode.com/problems/is-subsequence/

描述:判斷字串s是否是字串t的子序列(Subsequence),如果透過不停消除字串t中的某個字元能讓t變成s的話則s即為t的子序列

解題思路:子序列的字元順序會跟原始序列中一樣,所以使用two pointer從2個字串開頭開始逐個比較字元是否相同,如果最後s的字元都有比較完畢則s就是t的子序列

程式碼:

class Solution { public boolean isSubsequence(String s, String t) { if(s.length() == 0) return true; for(int i = 0, j = 0; i < t.length(); i++) { if(s.charAt(j) == t.charAt(i)) j++; if(j >= s.length()) return true; } return false; } }

時間複雜度:O(m+n),m跟n為2個字串的長度
空間複雜度:O(1)

tags: leetcode easy two pointer