對於兩個字串a,b。請設計乙個高效演算法,找到b在a中第一次出現的起始位置。若b未在a中出現,則返回-1。
給定兩個字串a和b,及它們的長度lena和lenb,請返回題目所求的答案。
測試樣例:
"acbc",4,"bc",2
返回:2
這道題還是比較簡單的:
class stringpattern {
public:
// write code here
int i=0;
int j=0;
int res=-1;
int flag=1;
if(a==b)
return 0;
if(lenb>lena)
return -1;
for(auto c1: a){
if(c1!=b[j] && j
而第乙個if中還有乙個if,是為了:當b中第二或第三或後面的字元與a不匹配時,不會直接continue,也就是不會跳過a的這個字元,而是會檢查a這個與b中後面不匹配的字元是否與b中第乙個字元匹配。
a: bbac
b: bac
也就是會檢查a的第二個b是不是與b的第乙個b匹配。而不會導致,直接a的a與b的b比較,防止漏判。
樸素的串模式匹配(C語言實現) 串模式匹配
從主串 s 的第 pos 個字元起和模式 t 的第乙個字元比較之,若相同,則繼續比較後續字元 否則從主串 s 的下乙個字元起再重新和模式 t 的字元比較之。例 s jinanshi t nan 當採用定長順序儲存結構時,實現此操作的演算法如下 int index sstring s,sstring ...
串的模式匹配
最近在學 vc include stdafx.h include include define max size 1000 串的模式匹配 功能 找出str2字串在str1字串中第一次出現的位置 不包括串結束符 返回 該位置的序號 環境 visual c 2008 注意 1.此為樸素的模式匹配演算法,...
串的模式匹配
以前每次看到字串匹配,一律跳過,今天耐著性子研究了下,依舊是半混沌狀態,先整理放在這,以備後用。這篇文章幫助很大,樸素匹配演算法 kmp演算法,收藏先。1.樸素匹配演算法 int patternmatch common const char pstring,const char ppattern i...