字符串匹配 sunday算法
生活随笔
收集整理的這篇文章主要介紹了
字符串匹配 sunday算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include"iostream"
#include"string.h"
using namespace std;//BF算法
int strfind(char *s1,char *s2,int pos){int len1 = strlen(s1);int len2 = strlen(s2);int i = pos - 1,j = 0;while(j < len2){if(s1[i + j] == s2[j]){j++;}else{i++;j = 0;}}if(j == len2){return i + 1;}else{return 0;}
}//sunday算法
int strsun(char *s1,char *s2,int pos){int len1 = strlen(s1);int len2 = strlen(s2);int shift[256],i,j;//shift表的初始化for(i = 0;i < 256;i++){shift[i] = len2 + 1;} for(i = 0;i < len2;i++){shift[s2[i]] = len2 - i;}//遍歷尋找i = pos - 1,j = 0;while(j < len2){if(s1[i + j] == s2[j]){j++;}else{i += shift[s1[i + len2]]; //不匹配就查表移動次數j = 0;}}if(j == len2){return i + 1;}else{return 0;}
}
int main(){char str1[] = "161234453218746321123456345567894";char str2[] = "123456";int n = 5;cout<<strfind(str1,str2,n)<<endl;cout<<strsun(str1,str2,n)<<endl;return 0;
}
?
轉載于:https://www.cnblogs.com/oleolema/p/9048337.html
總結
以上是生活随笔為你收集整理的字符串匹配 sunday算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创维电视如何卸载软件
- 下一篇: but I played with Mi