寻找一个字符串中的最长不重复子串的长度
生活随笔
收集整理的這篇文章主要介紹了
寻找一个字符串中的最长不重复子串的长度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
算法使用兩個下標來分別代表不重復子串的第一個字符的前一個字符和最后一個字符,記為i和j flag為長度,n為比較的參數
<!-- lang: cpp --> #include <stdio.h>int main(int argc, char *argv[]) { char *v = "aabcdeafghk";//這里有九個不重復字符串 int len = lengthOfnorepetitiveChar(v); printf("字符串最大不重復子串是:%d\n",len); if(len == 9){printf("正確!\n"); }v = "a"; len = lengthOfnorepetitiveChar(v); printf("字符串最大不重復子串是:%d\n",len); if(len == 1){printf("正確!\n"); }v = ""; len = lengthOfnorepetitiveChar(v); printf("字符串最大不重復子串是:%d\n",len); if(len == 0){printf("正確!\n"); } return 0; }int lengthOfnorepetitiveChar(char *s) { int i,j,n,flag;//flag為最長無重復子串長度 i=-1;//設置下標為子串的前一個位置 j=i+1; flag = 0;//必須從0開始,要判斷是否為空子串 if(s==NULL){//如果是空字符串進來了 return flag; } while(j<strlen(s)) {n=1;while(n<j-i){if(s[i+n]==s[j]){//如果相等,跳出里層循環 i = i+n;break; }n++;}if(flag < n){//如果不重復字符加1,給flag+1 flag = n;//這個 }j++; } return flag; }轉載于:https://my.oschina.net/zhaosod/blog/333965
總結
以上是生活随笔為你收集整理的寻找一个字符串中的最长不重复子串的长度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows安装 ANT
- 下一篇: POJ 2342 (树形DP)