实现strStr()函数
2024-08-27 01:00:59
方法一:暴力解法
int strStr(string haystack, string needle) {
if (needle.empty())
return ; int M = haystack.size();
int N = needle.size(); for (int i = ; i <= M - N; i++)
{
int j;
for (j = ; j < N; j++)
{
if (needle[j] != haystack[i + j])
{
break;
}
}
if (j == N)
return i;
}
return -;
}
方法二:利用memcmp,一层for循环即可解决
int strStr(string haystack, string needle) {
if (needle.empty())
return ; int M = haystack.size();
int N = needle.size(); char* m = new char[M + ];
char* n = new char[N + ]; memcpy(m, haystack.c_str(), M);
memcpy(n, needle.c_str(), N);
m[M] = '\0';
n[N] = '\0'; for (int i = ; i <= M - N; i++)
{
if ( == memcmp(&m[i], n, N))
{
delete[] m;
delete[] n;
return i;
}
} delete[] m;
delete[] n; return -;
}
方法三: KMP算法
最新文章
- JavaScript DOM编程艺术读书笔记(一)
- webpack+react配置
- Unix环境链接静态库
- java使用batik转换svg文件
- 排列组合函数next_permutation()
- 14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小
- Mysql update error: Error Code: 1175. You are using safe update mode and you tried to update a table
- 一起学习android图片四舍五入图片集资源 (28)
- Java 异常框架
- mysql分表场景分析与简单分表操作
- Linux转发性能评估与优化(转发瓶颈分析与解决方式)
- 洛谷mNOIP模拟赛Day1-斐波那契
- SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系
- Map 转换成byte[] 数组
- linux 安装nvm,通过nvm安装node
- etcd-v2第二集
- 【Selenium】【BugList2】geckodriver未安装,报:WebDriverException: Message: &#39;geckodriver&#39; executable needs to be in PATH.
- 一个隐蔽的C语言问题反思
- [UE4]增加开枪冷却时间, Get Time Seconds
- 26.Linux-网卡驱动介绍以及制作虚拟网卡驱动(详解)