国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

LintCode 13 字符串查找

2019-11-08 18:35:11
字體:
供稿:網(wǎng)友

題目:strStr


要求:

對于一個給定的 source 字符串和一個 target 字符串,你應(yīng)該在 source 字符串中找出 target 字符串出現(xiàn)的第一個位置(從0開始)。如果不存在,則返回 -1。

樣例:

如果 source = "source" 和 target = "target",返回 -1。如果 source = "abcdabcdefg" 和 target = "bcd",返回 1。

算法要求:

O(n2)的算法是可以接受的。如果你能用O(n)的算法做出來那更加好。(提示:KMP)

解題思路:

思路就是碰到開頭一樣的,即進入循環(huán),一個一個比對,比對結(jié)束后,還原到比對開始的位置,如果比對結(jié)果正確,則范圍此位置,否則繼續(xù)比對。學識薄淺,還沒有學懂KMP,不敢隨意造次,所以代碼如下。

算法如下:

int strStr(const char *source, const char *target) { // write your code here int j = 0; int i = 0; if (source == NULL || target == NULL) { return -1; } for (i = 0; source[i] != '/0'; i++) { j = 0; while (source[i] == target[j] && source[i] != '/0') { j++; i++; } if (target[j] == '/0') { return i - j; } i -= j; } if (i == j && source[i] == target[j]) { return i - j; } return -1; }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 资中县| 房山区| 泗水县| 赤城县| 基隆市| 冕宁县| 治县。| 定安县| 涿州市| 安岳县| 临夏县| 青河县| 西贡区| 金阳县| 新余市| 扎鲁特旗| 手游| 罗江县| 图们市| 成安县| 楚雄市| 河北区| 如皋市| 镇雄县| 巴林右旗| 聂荣县| 临洮县| 昭通市| 仪陇县| 西安市| 九江市| 陆河县| 金乡县| 扎鲁特旗| 苗栗市| 彭泽县| 樟树市| 佛冈县| 佛冈县| 茂名市| 庆城县|