LeetCode刻意練習26--判斷子序列

題目:
給定字符串 s 和 t ,判斷 s 是否爲 t 的子序列。

你可以認爲 s 和 t 中僅包含英文小寫字母。字符串 t 可能會很長(長度 ~= 500,000),而 s 是個短字符串(長度 <=100)。

字符串的一個子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩餘字符相對位置形成的新字符串。(例如,"ace"是"abcde"的一個子序列,而"aec"不是)。

思路:
遍歷字符串 s,遍歷字符串t ,如果字符串s中的每個字符在字符串t中均可以找到,則st的子序列

第一種實現:

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

在這裏插入圖片描述

第二種實現:

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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章