方法一:暴力解法

 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算法

最新文章

  1. JavaScript DOM编程艺术读书笔记(一)
  2. webpack+react配置
  3. Unix环境链接静态库
  4. java使用batik转换svg文件
  5. 排列组合函数next_permutation()
  6. 14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小
  7. Mysql update error: Error Code: 1175. You are using safe update mode and you tried to update a table
  8. 一起学习android图片四舍五入图片集资源 (28)
  9. Java 异常框架
  10. mysql分表场景分析与简单分表操作
  11. Linux转发性能评估与优化(转发瓶颈分析与解决方式)
  12. 洛谷mNOIP模拟赛Day1-斐波那契
  13. SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系
  14. Map 转换成byte[] 数组
  15. linux 安装nvm,通过nvm安装node
  16. etcd-v2第二集
  17. 【Selenium】【BugList2】geckodriver未安装,报:WebDriverException: Message: &#39;geckodriver&#39; executable needs to be in PATH.
  18. 一个隐蔽的C语言问题反思
  19. [UE4]增加开枪冷却时间, Get Time Seconds
  20. 26.Linux-网卡驱动介绍以及制作虚拟网卡驱动(详解)

热门文章

  1. SSH无密码(密钥验证)登录的配置
  2. 024 Android 自定义样式对话框(AlertDialog)
  3. python基础学习(十四)
  4. Python基础 — 八种数据类型
  5. 20191125:Python中的上下文管理机制with
  6. HCIA SWITCHING&amp;ROUTTING 笔记——第一章 TCP/IP基础知识(2)
  7. linux 列出本文件下的目录
  8. Golang_学习资料
  9. Manjaro 使用基础
  10. docker 宿主机与容器直接文件移动命令