日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

求字符串中最长无重复字符的子串

發布時間:2025/4/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求字符串中最长无重复字符的子串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:求一個字符串中最長的沒有重復字符的子串。


思路:用hash表從i遍歷查看包含i的最長 無重復子串。

int max_unique_substring2(char * str) {int i,j;int begin;int maxlen = 0;int hash[256];int n = strlen(str);for(i=0; i<n; ++i){memset(hash,0,sizeof(hash)); hash[str[i]] = 1;for(j=i+1; j<n; ++j){if(hash[str[j]] == 0)hash[str[j]] = 1;elsebreak;}if(j-i > maxlen){maxlen = j-i;begin = i;}}printf("%.*s\n", maxlen, &str[begin]);return maxlen; }

動態規劃:

dp[i]表示以a[i]為結尾的最長不重復子串長度,初始狀態dp[0]=1; ?現在判斷包含str[i]元素的最長不重復子串了,

主要是判斷包含str[i[元素最長子串的起始位置。如果他與他前面的最長不重復子串都沒有相同的字符,那么他也可以加入這個子串中,構成一個新的子串。 ?最終目的還是注意每個最長子串的起始位置。

/* LNRS dp */ int dp[30];void LNRS_dp(char * arr, int size) {int i, j;int <strong>last_start </strong>= 0; // 上一次最長子串的起始位置maxlen = maxindex = 0;dp[0] = 1;for(i = 1; i < size; ++i){for(j = i-1; j >= last_start; --j) // 遍歷到上一次最長子串起始位置{if(arr[j] == arr[i]){dp[i] = i - j;<strong>last_start</strong> = j+1; // 更新last_startbreak;}else if(j == <strong>last_start</strong>) // 無重復{dp[i] = dp[i-1] + 1;}}if(dp[i] > maxlen){maxlen = dp[i];maxindex = i + 1 - maxlen;}}output(arr); }

Hash

很多情況下,在描述一個字符串時,都是英文字母組成的字符,因此可能出現的元素是有限的(26個),因此就有了第二種想法,Hash。

這種想法在于使用一個大小為26的數組visited[]記錄每個字符是否出現,然后枚舉最長不重復子串的起點。代碼如下:

void LNRS_hash(char* s){char visited[26];int i, j;int maxlen = 0;int maxIndex;int len = strlen(s);memset(visited, -1, 26);for (i = 0; i < len; i++){visited[s[i] - 'a'] = 1;for(j = i+1 ; j < len; j++){if(visited[s[j]-'a'] == -1) //該字符沒有出現{visited[s[j]-'a'] = 1;if(j - i+1> maxlen){maxlen = j - i+1;maxIndex = i;//最長不重復子串的起點}}elsebreak;}memset(visited, -1, 26);}printf("%d\n", maxlen);}


《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的求字符串中最长无重复字符的子串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97超碰网 | 91一区二区视频 | 日本熟妇毛茸茸丰满 | 麻豆专区| 中文字幕+乱码+中文乱码91 | 一区二区人妻 | 北岛玲av在线 | 午夜天堂精品久久久久 | 香蕉久久精品日日躁夜夜躁 | 精品无码久久久久久久久成人 | 亚洲激情在线观看 | 69中国xxxxxxxxx96 欧美456 | jizz成熟丰满日本少妇 | 精品一性一色一乱农村 | 久久精品国产清自在天天线 | 日韩视频免费播放 | 污黄视频在线观看 | 亚洲精品丝袜 | 日日艹 | 五月婷婷一区 | 强伦人妻一区二区三区视频18 | 尤物网址在线观看 | 老司机精品视频在线播放 | 九九色在线 | 国产精品无码网站 | 熟女俱乐部五十路六十路av | 国产乱色精品成人免费视频 | 超碰在线国产 | 夜夜天天干 | 色爱综合网 | 亚洲免费精品视频 | 欧美顶级metart裸体全部自慰 | 伊是香蕉大人久久 | 日本少妇吞精囗交 | 国产女人18毛片18精品 | 国产高清欧美 | 日少妇视频| 日韩色在线| 天堂成人在线观看 | 国产av一区二区不卡 | 精品人妻一区二区三区四区久久 | 日韩在线国产精品 | 精品国产乱码久久久久久预案 | 在线免费h | 曰曰操| h成人在线| 韩国一级片在线观看 | 精彩视频一区二区三区 | 国产农村熟妇videos | 九九热国产| 国产日韩欧美综合在线 | 亚洲欧美日本在线 | 18成人免费观看网站 | 奇米777狠狠 | av图片在线观看 | 国产 日韩 欧美 成人 | 校园春色综合网 | 日韩午夜在线观看 | 久久久久久久综合色一本 | 成 年人 黄 色 片 | 人体私拍套图hdxxxx | 欧美日韩亚洲成人 | 狠狠爱网站 | 不用播放器的av网站 | 亚洲18在线看污www麻豆 | 麻豆综合 | 三级欧美韩日大片在线看 | 欧美激情在线一区二区 | 亚洲欧美日韩一区二区 | 亚洲福利在线观看 | 天天干狠狠插 | 女同一区二区三区 | 69xx欧美| 久久国产加勒比精品无码 | 国产中文字幕在线 | 欧美国产一区二区三区 | 你懂的欧美 | 日韩精品一二三区 | www日韩欧美 | 日本一区视频在线播放 | 成片免费观看视频 | 一区二区三区天堂 | 青青青国内视频在线观看软件 | 黄色av高清 | 久久免费视频精品 | 国产精品剧情一区 | 性欧美极品 | 欧美区在线观看 | 久久老司机精品视频 | 国产a自拍 | 日韩女同互慰一区二区 | 无码精品视频一区二区三区 | 欧美一区二区三区在线播放 | 丝袜+亚洲+另类+欧美+变态 | 免费萌白酱国产一区二区三区 | 老司机午夜av | 精品亚洲一区二区三区四区五区 | 宝贝乖h调教灌尿穿环 | 天天射天天干天天舔 |