长沙建站标协助找有为太极平面设计网站
题目描述
给定一个 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()
定义相符。
代码
用两层循环来解决这个问题,第一层外循环是在 haystack 字符串中查找,第二层内循环是在 needle 字符串中查找,如果两个字符不相等,则跳出内循环,相等则开始判断。
class Solution {
public:int strStr(string haystack, string needle) {int size1 = haystack.size();int size2 = needle.size();if(size2 == 0 && size1 == 0) return 0;if(size1 < size2) return -1;for(int i = 0;i<=size1-size2;i++){int j = 0;for(j = 0;j<size2;j++){if(haystack[i+j]!=needle[j])break;}if(j == size2)return i;}return -1;}
};