【Leetcode】實現strStr()函式。
阿新 • • 發佈:2018-11-27
Leetcode
題目如下
實現strStr()函式
要求:給定一個haystack字串和一個needle字串,在haystack字串中找出needle字串出現的第一個位置(從0開始)。
如果不存在,則返回-1
示例1.
輸入:haystack = “hello”, needle = “ll”
輸出:2
示例2.
輸入:haystack = “aaaaa”, needle = “bba”
輸出:-1
注意:當needle是空字元時我們應當返回0。
具體程式碼實現如下:
public class Solution {
/**
* 實現strStr()函式
*
* 給定一個haystack字串和一個needle字串,在haystack字串中找出needle字串出現的第一個位置(從0開始)。
* 如果不存在,則返回-1
* 注意:當needle是空字元時我們應當返回0
*/
public int strStr(String haystack, String needle) {
//若needle為空字串時返回0
if(needle.length() == 0)
return 0;
//先獲得兩個字串的char值陣列,便於對比
char[] charArrayhaystack = haystack.toCharArray();
char[] charArrayneedle = needle.toCharArray();
for(int i = 0; i < charArrayhaystack.length ; i++){
//從haystack中查詢needle的第一個字元,若後面的字元也全部相同,則找到,返回第一個字元的位置
if(charArrayhaystack[i] == charArrayneedle[0])
{
int j = i + 1;
int k = i;
for(k = 1; k < charArrayneedle.length; k++){
if(charArrayhaystack[j] == charArrayneedle[k]){
j++;
//從haystack中查詢needle對應的每一個字元
} else{
break;
}
}
if(k == charArrayneedle.length)
return i;
}
}
return -1;
}
}