實現 strStr()
實現 strStr() 函式。
給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。
示例 1:
輸入: haystack = "hello", needle = "ll"
輸出: 2
示例 2:
輸入: haystack = "aaaaa", needle = "bba" 輸出: -1
說明:
當 needle 是空字串時,我們應當返回什麼值呢?這是一個在面試中很好的問題。
對於本題而言,當 needle 是空字串時我們應當返回 0 。這與C語言的 strstr() 以及 Java的 indexOf() 定義相符。
解題思路:
1、從haystack的首字元開始獲取haystack和needle長度相同的子串,如果子串的值和needle的值相同,則迴圈的索引即為needle在haystack的索引值,否則返回-1
解題原始碼:
class Solution {
public int strStr(String haystack, String needle) {
if(haystack == null || needle == null || needle.length() > haystack.length()){
return -1;
}
if(haystack.length() == 0 || needle.length() == 0){
return 0;
}
int index = -1;
int diff = needle.length();
if(diff == 0){
if(haystack.equals(needle)){
index = 0;
}else{
index = 1;
}
}else{
String tempStr = "";
for(int i = 0; i < (haystack.length() - needle.length() + 1) ;i++){
tempStr = haystack.substring(i,i + diff);
//System.out.println("tempStr===>" + tempStr);
if(needle.equals(tempStr)){
index = i;
break;
}
}
}
return index;
}
}
相關文章
- [LeetCode] Implement strStr() 實現strStr()函式LeetCode函式
- 演算法strstr實現演算法
- 每日一練(37):實現 strStr()
- (函式)實現strstr函式函式
- LeetCode-028-實現 strStr()LeetCode
- [C練習]程式設計實現strstr程式設計
- Leetcode--28. 實現strStr()(JS版)LeetCodeJS
- C語言-字串函式的實現(五)之strstrC語言字串函式
- strstr函式函式
- Leetcode Implement strStr()LeetCode
- C 庫函式 - strstr()函式
- 5. PHP 函式 strstr ()PHP函式
- Leetcode 28 Implement strStr()LeetCode
- Leetcode-Implement strStr()LeetCode
- Implement strStr() leetcode javaLeetCodeJava
- leetcode28_Implement strStr()LeetCode
- LeetCode-Implement strStr()-KMPLeetCodeKMP
- 子串查詢函式strstr函式
- 【LeetCode 28_字串_匹配】Implement strStr()LeetCode字串
- PHP字串函式之 strstr stristr strchr strrchrPHP字串函式
- 【leetcode】28. Implement strStr() 字串匹配KMP BMLeetCode字串匹配KMP
- C 標準庫 – string.h之strstr使用
- 【LeetCode從零單排】No28 Implement strStr()LeetCode
- [PHP原始碼閱讀]strpos、strstr和stripos、stristr函式PHP原始碼函式
- PHP 中 strpos、strstr 和 stripos、stristr 函式原始碼解析PHP函式原始碼
- 想要永生?虛擬現實中實現永生或成現實
- AOP如何實現及實現原理
- 動手實現一個localcache - 實現篇
- vue 實現原理及簡單示例實現Vue
- Promise實現Promise
- asyncToGenerator 實現
- jwt實現JWT
- 訊息的即時推送——net實現、websocket實現以及socket.io實現Web
- Golang 實現 Redis(5): 使用跳錶實現 SortedSetGolangRedis
- pytorch實現yolov3(3) 實現forwardPyTorchYOLOForward
- 簡單介紹numpy實現RNN原理實現RNN
- Vue實現左右選單聯動實現(更新)Vue
- C均值聚類 C實現 Python實現聚類Python