實現 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-028-實現 strStr()LeetCode
- 每日一練(37):實現 strStr()
- Leetcode--28. 實現strStr()(JS版)LeetCodeJS
- C語言-字串函式的實現(五)之strstrC語言字串函式
- Implement strStr()
- Leetcode 28 Implement strStr()LeetCode
- C 庫函式 - strstr()函式
- 5. PHP 函式 strstr ()PHP函式
- 【leetcode】28. Implement strStr() 字串匹配KMP BMLeetCode字串匹配KMP
- C 標準庫 – string.h之strstr使用
- [PHP原始碼閱讀]strpos、strstr和stripos、stristr函式PHP原始碼函式
- AOP如何實現及實現原理
- 程式碼隨想錄演算法訓練營day09|151.翻轉字串裡的單詞,卡碼網:55.右旋轉字串,28.實現 strStr(),459.重複的子字串演算法字串
- vue 實現原理及簡單示例實現Vue
- pytorch實現yolov3(3) 實現forwardPyTorchYOLOForward
- 動手實現一個localcache - 實現篇
- C均值聚類 C實現 Python實現聚類Python
- 程式碼隨想錄演算法訓練營,9月5日 | 151.翻轉字串裡的單詞,卡碼網:55.右旋轉字串,28. 實現 strStr(),459.重複的子字串演算法字串
- 訊息的即時推送——net實現、websocket實現以及socket.io實現Web
- autograd實現
- Promise實現Promise
- jwt實現JWT
- asyncToGenerator 實現
- ALU實現
- Vue實現左右選單聯動實現(更新)Vue
- Golang 實現 Redis(5): 使用跳錶實現 SortedSetGolangRedis
- linux實現DNS輪詢實現負載平衡LinuxDNS負載
- 簡易實現 HTTPS (一) 自動實現 sslHTTP
- java實現兩個文字相似度 simHash 實現Java
- Spring實現IOC容器的兩種實現方式Spring
- Python實現火柴人的設計與實現Python
- GO實現Redis:GO實現Redis叢集(5)GoRedis
- 簡單介紹numpy實現RNN原理實現RNN
- Docker實現服務發現Docker
- etcd實現服務發現
- android圖片裁剪拼接實現(二):觸控實現Android
- 從零實現Vue的元件庫(十六)- Dropdown 實現Vue元件
- 從零實現Vue的元件庫(九)- InputNumber 實現Vue元件