理解babel的基本原理和使用方法
阿新 • • 發佈:2020-07-26
給定字串 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.
解題思路:
動態規劃:
當前字串的從開始的一個字母是不是需要匹配的【0, i】的子串,是那就是[0,n]的子串,擴大範圍,
class Solution { public boolean isSubsequence(String s, String t) { int sLen = s.length(), tLen = t.length(); if (sLen > tLen) return false; if (sLen == 0) return true; boolean[][] dp = new boolean[sLen + 1][tLen + 1]; //初始化 for (int j = 0; j < tLen; j++) { dp[0][j] = true; } //dp for (int i = 1; i <= sLen; i++) { for (int j = 1; j <= tLen; j++) { if (s.charAt(i - 1) == t.charAt(j - 1)) { dp[i][j] = dp[i - 1][j - 1]; } else { dp[i][j] = dp[i][j - 1]; } } } return dp[sLen][tLen]; } }
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/is-subsequence
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。