题目链接:Leetcode 28
大致描述一下题目:
给定两个str1和str2字符串,在str1中找出str2第一次出现的位置(从0开始),如果没有则返回-1。
解题思路:
首先比较str1和str2的长度,如果相等,比较是否为相等字符串;如果不相等,遍历str1.size()-str2.size()次,从str1[i](i=0,1,2...)开始str2.size大小的字符串是否和str2相等。
附上代码如下(C++):
/*******************************************************************************
Copyright © 2018-20xx Qiao Chuncheng, All Rights Reserved.
File name: 028[实现strStr].cpp
Author: Qiao Chuncheng
Version: v1.0
Date: 2018-04-16
*******************************************************************************/
class Solution {
public:
int strStr(string haystack, string needle) {
if (needle.size() == 0)
return 0;
int len = haystack.size() - needle.size();
if (len == 0)
{
if (haystack == needle)
return 0;
}
else
{
for (int i = 0; i <= len; i++)
{
for (int j = 0; j < needle.size(); j++)
{
if (needle[j] != haystack[i + j])
break;
else
{
if (j == needle.size() - 1)
return i;
}
}
}
}
return -1;
}
};