C 判斷字串是否是子集
題目描述
分析
該題是在leetCode“二分搜尋”類下搜到的一題難度為medium的題。從題目的意思來看,其實就是判斷子串的字元順序是否在主串中出現過,若出現過,就返回true。就題目的意思來說,那我們最多遍歷一次主串來挨個搜尋出子串的字元即可得出結果,很簡單明瞭的一件事兒。之所以說是medium,是從若用運用二分搜尋的思想來解該題的角度說的吧,而我到在寫下這篇部落格為止,還未能想到如何應用二分搜尋來弄。
程式碼實現
bool isSubsequence(char* s, char* t) {
int slen=strlen(s);
int tlen=strlen(t);
int j=0;
for(int i=0;i<tlen;i++){
if(s[j]==t[i]){
j++;
if(j==slen)
break;
}
}
if(j==slen)
return true;
else
return false;
}
- 附
無意中看到了一個對上述方法進行實現的簡潔程式碼(除不含break的功能外),如下
bool isSubsequence(char* s, char* t) {
while (*t)
s += *s == *t++;
return !*s;
}
感想:
好簡潔,利用了判斷語句的結果true、false會在計算中自動轉化為1、0值,以及char型別的儲存空間為1個位元組的性質,當然還有字串以‘\0’結束,作為判斷時會轉成false的性質,三句程式碼就搞定了,膜!
相關文章
- C#判斷字串是否合法C#字串
- C#判斷字串是否為日期格式C#字串
- C#裡判斷字串是否為中文C#字串
- 判斷是否是字串全都是空格字串
- 判斷字串是否是合法的EMail (轉)字串AI
- 判斷字串是否為空字串
- 判斷URL字串是否合法字串
- 判斷字串是否唯一字串
- php判斷字串A是否含有字串BPHP字串
- C#--判斷某年是否是閏年C#
- js判斷字串是否為空JS字串
- JavaScript判斷字串是否為空JavaScript字串
- java判斷字串是否為空Java字串
- PHP 判斷是否包含某字串PHP字串
- C語言:判斷一個字串是否為迴文C語言字串
- C#判斷一個字串是否是數字或者含有某個數字C#字串
- 33判斷字串是否為迴文字串
- js判斷字串中是否含有指定的子字串JS字串
- JS判斷字串是否包含某字串 indexOf()方法使用JS字串Index
- JavaScript 判斷是否是陣列JavaScript陣列
- 判斷是否是iPhone5iPhone
- js判斷字串中是否含有指定字元JS字串字元
- Java 判斷字串中是否含有漢字.Java字串
- js如何判斷字串中是否包含指定的子字串JS字串
- js判斷字串是否以指定的子字串結尾JS字串
- js判斷字串是否是以指定的子字串開頭JS字串
- PHP 判斷一個字元是否在字串中PHP字元字串
- J2SE-判斷字串是否為空字串
- PHP判斷一個字串是否包含亂碼PHP字串
- js如何判斷字串中是否含有指定字元JS字串字元
- YTUOJ-判斷字串是否為迴文字串
- 判斷字串中是否包含Emoji表情程式碼字串
- C++判斷是否為閏年C++
- Python中判斷是否為數字字串的方法是什麼?Python字串
- 判斷oracle是否是rac例項Oracle
- 判斷某一個字串是否存在另一個字串中字串
- 演算法題:判斷括號字串是否有效演算法字串
- java判斷輸入的字串是否為數字Java字串