题目链接: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; } };