题目描述
给你两个字符串 haystack
和 needle
,请你在 haystack
字符串中找出 needle
字符串出现的第一个位置(下标从 $0$ 开始)。如果不存在,则返回 $-1$ 。
样例1
输入:
"hello"
"ll"
输出:
2
样例2
输入:
"acwing"
"wrong"
输出:
-1
样例3
输入:
""
""
输出:
0
算法1
(朴素算法) $O(nm)$
作为一个 C++ 玩家,怎么能不会STL呢?
这里介绍一个string类函数:
#include<string>
在这个头文件里,有一个 find()
(方便懒人)
string
中 find()
返回值是字母在母串中的位置(下标记录),如果没有找到,返回 $-1$ 。
用法:
string s1="acwing";
string s2="win";
int ans=s1.find(s2);
cout<<ans;
那么输出的结果就为 2
(w
的下标为 $2$)。
时间复杂度 $O(nm)$
参考文献
C++ string函数库
C++ 代码
class Solution {
public:
int strStr(string s1, string s2){
return s1.find(s2);
}
};