做包裝設(shè)計(jì)的網(wǎng)站色盲測試圖片60張
1.題目描述
給你兩個(gè)字符串?haystack
?和?needle
?,請你在?haystack
?字符串中找出?needle
?字符串的第一個(gè)匹配項(xiàng)的下標(biāo)(下標(biāo)從 0 開始)。如果?needle
?不是?haystack
?的一部分,則返回??-1
?。
2.樣例描述
3.思路描述
可以讓字符串 needle?與字符串 haystack?的所有長度為 mmm 的子串均匹配一次。
為了減少不必要的匹配,每次匹配失敗即立刻停止當(dāng)前子串的匹配,對下一個(gè)子串繼續(xù)匹配。如果當(dāng)前子串匹配成功,返回當(dāng)前子串的開始位置即可。如果所有子串都匹配失敗,則返回 ?1。
4.代碼展示
class Solution {public int strStr(String haystack, String needle) {int n = haystack.length(), m = needle.length();for (int i = 0; i + m <= n; ++i) {boolean flag = true;for (int j = 0; j < m; ++j) {if (haystack.charAt(i + j) != needle.charAt(j)) {flag = false;break;}}if (flag) {return i;}}return -1;}
}
int strStr(char * haystack, char * needle){int len1 =strlen(haystack);int len2 =strlen(needle);if(len1<len2)return -1;int i=0;int j=0;int t=i;while(haystack[i] && needle[j]){if(haystack[i] == needle[j]){i++;j++;continue;}else{t=t+1;i=t;j=0;}}if(needle[j] == '\0')return t;return -1;
}