LeetCode-3. 無重複字元的最長子串
3. 無重複字元的最長子串
給定一個字串,找出不含有重複字元的最長子串的長度。
示例:
給定 "abcabcbb"
,沒有重複字元的最長子串是 "abc"
,那麼長度就是3。
給定 "bbbbb"
,最長的子串就是 "b"
,長度是1。
給定 "pwwkew"
,最長子串是 "wke"
,長度是3。請注意答案必須是一個子串,"pwke"
是 子序列 而不是子串。
#include<bits/stdc++.h>
using namespace std;
/********************提交程式碼********************/
int lengthOfLongestSubstring(char* s)
{
int i,j,n=strlen(s),res=0,ans=0;
int *a=(int*)malloc(n*sizeof(int));
for(i=0; i<n; ++i)
{
a[i]=s[i]-'A';//字元陣列轉成int儲存方便判斷是否vis
if(a[i]>res)//轉換的最大數值
res=a[i];
}
bool *vis=(bool*)malloc((res+1)*sizeof(bool));//訪問標記
for(j=0; j<n; ++j)
{
res=0;
for(i=0; i<n; ++i)//注意初始化
vis[a[i]]=false;
for(i=j; i<n; ++i)//從第i個位置依次往後遍歷
{
if(!vis[a[i]])//未出現過
{
vis[a[i]]=true;
++res;
}
else//出現過直接跳出
break;
if(res>ans)//更新最長串長度
ans=res;
}
}
return ans;
}
/***************************************************/
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("F:/cb/read.txt","r",stdin);
//freopen("F:/cb/out.txt","w",stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(0);
char s[1000];
while(cin>>s)
{
cout<<lengthOfLongestSubstring(s)<<endl;
}
return 0;
}
暴力出奇跡( ̄▽ ̄)~*,從頭到尾依次作為起始位置遍歷到最後(有重複字元)。
三點。
1、不能用a=int(c)這樣的顯式強制轉換,我只能隱式強制轉換了;
2、申請vis的記憶體時注意取最大值加一。
3、子序列可以不是連續字元,而子串必須是連續的。
相關文章
- 無重複字元的最長子串字元
- 3 無重複字元的最長子串字元
- LeetCode——無重複字元的最長子串LeetCode字元
- java無重複字元的最長子串Java字元
- leetcode 之無重複字元的最長子串LeetCode字元
- 【LeetCode】3 無重複字元的最長子串LeetCode字元
- 3. 無重複字元的最長子串字元
- 演算法-無重複字元的最長子串演算法字元
- Leetcode 3. 無重複字元的最長子串LeetCode字元
- 【每日一題】無重複字元的最長子串每日一題字元
- leetcode-3無重複字元的最長子串LeetCode字元
- 【leetcode】【java】【3、無重複字元的最長子串】LeetCodeJava字元
- LCR 016. 無重複字元的最長子串(中)字元
- LeetCode題集-3 - 無重複字元的最長子串LeetCode字元
- 每日leetcode——3. 無重複字元的最長子串LeetCode字元
- #leetcode刷題之路3-無重複字元的最長子串LeetCode字元
- [LeetCode 刷題] 3. 無重複字元的最長子串 (Medium)LeetCode字元
- 求字串中不含重複字元的最長子串字串字元
- LeetCode3:Longest Substring Without Repeating Characters(無重複字元的最長子串)LeetCode字元
- 無重複字元的最長子串問題 (移動視窗法求解)字元
- LeetCode133:給定一個字串,找出最長的不具有重複字元的子串的長度。例如,“abcabcbb”不具有重複字元的最長子串是“abc”,長度為3。對於“bbbbb”,最長的不具有重複字元的子串是LeetCode字串字元
- 每天一道演算法題:無重複字元的最長子串演算法字元
- Leetcode 3.無重複字元的最長子串 字典記錄每個字元最後出現的位置LeetCode字元
- 讓我們一起啃演算法----無重複字元的最長子串演算法字元
- Leetcode[字串] 3. 無重複字元的最長子串 10行極簡寫法!LeetCode字串字元
- 最長不含重複字元的子字串字元字串
- JZ-073-最長不含重複字元的子字串字元字串
- 用 PHP 在 力扣 上演算法 [無重複字元的最長子串]{一天一更}PHP力扣演算法字元
- leetcode無重複字元的最長字串 python實現LeetCode字元字串Python
- 用滑動視窗來解決最長無重複子串問題
- leetcode 解題 3. 無重複字元的最長子串-python3@ 官方,暴力解法和視窗滑動解法LeetCode字元Python
- 劍指 Offer 48. 最長不含重複字元的子字串字元字串
- 【Leetcode】3. Longest Substring Without RepeatingCharacters無重最長子串LeetCodeGC
- 滑動視窗3.替換後最長重複字元子串字元
- leetcode 劍指 Offer 48. 最長不含重複字元的子字串LeetCode字元字串
- 最長子串
- 演算法練習:求字串的最長重複子串(Java實現)演算法字串Java
- 最長上升子串