Leetcode: Implement strStr()
来源:互联网 发布:维奈斯淘客采集软件 编辑:程序博客网 时间:2024/05/22 08:20
Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
本以为很复杂,没想到brute force一遍就过了。其实这个题有些高级的算法可以应用,such as KMP,不过面试中不太可能出现。
class Solution {public: char *strStr(char *haystack, char *needle) { if (haystack == NULL || needle == NULL) { return NULL; } int hsize = 0, nsize = 0; for (char *tmp = haystack; *tmp != 0; ++tmp) { ++hsize; } for (char *tmp = needle; *tmp != 0; ++tmp) { ++nsize; } if (hsize < nsize) { return NULL; } char *start = NULL; char *match = NULL; for (int i = 0; i <= hsize - nsize; ++i) { start = haystack + i; match = needle; while (*match != 0 && *start == *match) { ++start; ++match; } if (*match == 0) { return (haystack + i); } } return NULL; }};
=================第二次=================
class Solution {public: int strStr(char *haystack, char *needle) { if (haystack == NULL || needle == NULL) { return -1; } int max_index = strlen(haystack) - strlen(needle); for (int i = 0; i <= max_index; ++i) { char *start = haystack + i; char *target = needle; while (*target != '\0' && *start == *target) { ++start; ++target; } if (*target == '\0') { return i; } } return -1; }};
0 0
- LeetCode: Implement strStr()
- [Leetcode] Implement strstr()
- Leetcode: Implement strStr
- [Leetcode] Implement strStr()
- LeetCode Implement strStr()
- 【leetcode】Implement strStr()
- [LeetCode]Implement strStr()
- [LeetCode] Implement strStr()
- [LeetCode] Implement strStr()
- LeetCode-Implement strStr()
- LeetCode: Implement strStr()
- LeetCode - Implement strStr()
- LeetCode: Implement strStr()
- 【leetcode】Implement strStr()
- Leetcode: Implement strStr()
- leetcode implement strStr
- LeetCode Implement strStr()
- LeetCode题解:Implement strStr()
- 浙江外国语学院第四届大学生ACM程序设计大赛试题 DEC 21,2013
- java学习小记 输入输出 字符串 函数 高精度 进制转换
- 一篇关于闭包的极好的、极详细的文章
- iBATIS的sqlMapConfig配置顺序
- C#判断目录是否存在,不存在则创建
- Leetcode: Implement strStr()
- oc中的常用结构体
- Codeforces Round #225 (Div. 2)(B思维题,E:dfs+树状数组)
- 数据结构实验:AVL平衡树做出用户登录系统(dos界面)
- linux系统编程之基础必备(三):文件描述符file descriptor与inode的相关知识
- 烂笔头之使用数据库之前要先在项目中添加数据库驱动包
- c++子类父类的转换关系
- HDU 2046 骨牌铺方格。
- Pod::Executable pull