[LeetCode] Is Subsequence 判斷一個字串是否為另一個的子序列
宣告:原題目轉載自LeetCode,解答部分為原創
Problem :
Given a string s and a string t, check if s is subsequence of t.
You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000) string, and s is a short string (<=100).
A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ace"
is
a subsequence of "abcde"
while "aec"
is
not).
Example 1:
s = "abc"
, t = "ahbgdc"
Return true
.
Example 2:
s = "axc"
, t = "ahbgdc"
Return false
.
Solution :
思路:可以用動態規劃的思想來解決,定義bool函式L( i, j ) 返回子串s[ 0, i ] 是否為 t[ 0, j ] 的子序列。則L( i, j )的狀態轉換方程為
if i = -1 : L( i, j ) = true;
else if j = -1 : L( i, j ) = false;
else if s[i] = t[j] : L( i , j ) = L( i -1, j - 1);
else : L( i , j ) = L( i, j - 1);
程式碼如下:
#include<iostream>
using namespace std;
class Solution {
public:
/* bool isSubsequence(string s, string t) {
return judge(s, t, s.size() - 1, t.size() - 1);
}
bool judge(string s, string t, int pos_s, int pos_t)
{
if(pos_s == -1)
return true;
else if(pos_t == -1)
return false;
else if(s[pos_s] == t[pos_t])
return judge(s, t, pos_s - 1, pos_t - 1);
else
return judge(s, t, pos_s, pos_t - 1);
}
*/
bool isSubsequence(string s, string t) {
int pos_s = 0;
for(int i = 0 ; i < t.size() && pos_s < s.size(); i ++)
{
if(s[pos_s] == t[i])
pos_s ++;
}
if(pos_s == s.size())
return true;
else
return false;
}
};
int main()
{
Solution text;
cout << text.isSubsequence("ace", "ahencgoe") << endl;
return 0;
}
相關文章
- 判斷某一個字串是否存在另一個字串中字串
- 判斷一個字串是否包含一個子串的方法字串
- 判斷一個元素是否是另一個元素的子元素或者父元素
- 如何判斷一個字串是否為純數字的問題,當然也可以判斷一個字串是否為純字母字串
- js判斷一個變數是否為字串型別JS變數字串型別
- C語言:判斷一個字串是否為迴文C語言字串
- 如何判斷一個元素是否位於另一個元素之中
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- javascript中如何判斷一個字串是否為JSON格式JavaScript字串JSON
- 在Oracle中,如何判斷一個字串是否為數字?Oracle字串
- PHP 判斷一個字元是否在字串中PHP字元字串
- PHP判斷一個字串是否包含亂碼PHP字串
- JS——判斷一個物件是否為空JS物件
- 判斷字串是否為空字串
- js判斷字串中是否含有指定的子字串JS字串
- js判斷一個變數是否為空JS變數
- 如何判斷一個物件是否為jQuery物件物件jQuery
- js判斷一個物件是否為陣列JS物件陣列
- 常見物件-判斷一個字串是否對稱案例物件字串
- js判斷字串是否為空JS字串
- JavaScript判斷字串是否為空JavaScript字串
- java判斷字串是否為空Java字串
- 利用棧和隊來判斷輸入的一個字串是否為迴文字串
- 判斷字串是否唯一字串
- LeetCode-392-判斷子序列LeetCode
- js如何判斷字串中是否包含指定的子字串JS字串
- js判斷字串是否以指定的子字串結尾JS字串
- js判斷字串是否是以指定的子字串開頭JS字串
- JS如何判斷一個陣列是否為空、是否含有某個值JS陣列
- Java判斷一個整數是否為奇數Java
- 判斷一個數是否為質數(程式碼)
- Oracle中如何判斷一個字串是否含有漢字(中文)Oracle字串
- js判斷一個字串是否為空或者只包含空格程式碼例項JS字串
- 33判斷字串是否為迴文字串
- 判斷一個類是否為另一個類的例項 instanceof關鍵字和isAssignableFrom方法的區別
- 如何在js中判斷是否包含某個字串JS字串
- js如何判斷一個變數值是否為undefinedJS變數Undefined
- 如何用python判斷列表中是否包含多個字串中的一個或多個?Python字串