博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 28. Implement strStr()
阅读量:5232 次
发布时间:2019-06-14

本文共 1003 字,大约阅读时间需要 3 分钟。

问题链接

题目解析

实现函数strStr()。

解题思路

题意很简单,实现。这个函数是干什么的呢?简单来说,就是在一个字符串中寻找另一个字符串第一次出现的位置,未找到返回-1。

暴力解法

暴力匹配,直接遍历字符串,一个字符一个字符匹配下去,暴力代码如下:

class Solution {public:    int strStr(string haystack, string needle) {        if (needle.size() == 0) return 0;        if (needle.size() > haystack.size()) return -1;                int m = haystack.size(), n = needle.size();        for (int i = 0; i <= m - n; i++) {            int j = 0;            for (j = 0; j < n; j++) {                if (haystack[i + j] != needle[j]) break;            }            if (j == n) return i;        }        return -1;    }};

投机取巧法

由于在C++中,已经有实现此功能的函数——find。这里直接使用也可以过题,参考代码如下:

class Solution {public:    int strStr(string haystack, string needle) {        if (needle.size() == 0) return 0;        if (needle.size() > haystack.size()) return -1;        return haystack.find(needle);    }};

KMP匹配

还没有完全弄清楚,先码上~


本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.


转载于:https://www.cnblogs.com/AlvinZH/p/8582379.html

你可能感兴趣的文章
NHibernate.3.0.Cookbook第四章第6节的翻译
查看>>
使用shared memory 计算矩阵乘法 (其实并没有加速多少)
查看>>
Django 相关
查看>>
git init
查看>>
训练记录
查看>>
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
查看>>
Hive教程(1)
查看>>
第16周总结
查看>>
C#编程时应注意的性能处理
查看>>
Fragment
查看>>
比较安全的获取站点更目录
查看>>
苹果开发者账号那些事儿(二)
查看>>
使用C#交互快速生成代码!
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>
P3950 部落冲突 树链剖分
查看>>
读书_2019年
查看>>
读书汇总贴
查看>>
微信小程序 movable-view组件应用:可拖动悬浮框_返回首页
查看>>