1. 程式人生 > >【Leetcode】實現strStr()函式。

【Leetcode】實現strStr()函式。

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; } }