最長不重複子串(精簡)
直接甩出程式碼吧,有問題可以交流討論,有O(n)的解法,有興趣小夥伴的可以自行了解。
//動態規劃的演算法求解( 時間複雜度是O(n^2) )
#include
#include
#include
using namespace std;
int main(){
char a[20]=“acbaefhkbq”;
int dp[20]={1};//記錄取第i個字元時的最大不重複字串的長度dp[i]
int n=strlen(a);
int k=0,max_len=1;//K表示當前字串首字元索引
for(int i=0;i<n;i++){
for(int j=k;j<i;j++){
if(a[j]==a[i]){
k=j+1;continue;
}
dp[i]=i+1-k;
max_len=max(dp[i],dp[1]);
}
}
cout<<max_len<<endl;
return 0;
}
相關推薦
最長不重複子串(精簡)
直接甩出程式碼吧,有問題可以交流討論,有O(n)的解法,有興趣小夥伴的可以自行了解。 //動態規劃的演算法求解( 時間複雜度是O(n^2) ) #include #include #include using namespace std; int main(){ char a[20]=
求最長不重複子串---LeetCode3
Longest Substring Without Repeating Characters 題目描述 Given a string, find the length of the longest substring without repeating characters. Exa
找出字串最長不重複子串(或者是列表)
# 找出來一個字串中最長不重複子串def find_Maxlen_Son_list(astr): maxlen = 0 定義最長字串的初始長度// dict = {} list1 = [] for i in range(0,len(astr)): str2 = ''
位元組跳動2018.9.9筆試 最長不重複子串
題目描述 給定一個字串,請找出其中無重複字元的最長子字串的長度。例如,“abcabcbb”,其無重複字元的最長子字串實“abc”,其長度為3。“bbbbb”,其無重複字元的最長子字串是“b”,長度為1。 此題是leetcode第三題原題。 本人思路 以上圖為例
LeetCode千題斬之3:Longest Substring Without Repeating Characters(最長不重複子串)
題目:Given a string, find the length of the longest substring without repeating characters. 先說說思路,優化的方法在於用一個滑動的視窗[i,j]瀏覽字串,先把遇到的字元加入一個字典dic
字串中最長不重複子串和最長迴文子串演算法
一) 這裡用GOLANG實現了一個查詢最長不重複子串的演算法,在暴力查詢的基礎上作了優化,雖然速度還是比較慢,但是有助於理解後邊高階的演算法,值得一記。 暴力查詢的優化思路: 1)如果我們已經查詢到的最大子串長度比剩下沒有for到的子串還長,那最大子串不可能會在發生改變了
求最長重複子串 和 最長不重複子串 思路
題目: 求任意一個字串中的所有最長重複字串和所有最長不重複子串 最長不重複子串的解法: 設定一個輔助資料結構(如map)記錄每個字元最後一次出現的位置;遍歷字串中的每個字元,如果在map
python實現找出來一個字串中最長不重複子串
剛結束的一個筆試題,很簡單,不多說簡單貼一下具體的實現: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:找出來一個字串中最長不重複子串 ''' def find_longest_no_repe
尋找一個字串中的最長重複子串(字尾陣列)&找出一個字串中最長不重複子串
一、尋找一個字串中的最長重複子串(字尾陣列) 字尾陣列其實可以看尋找一個字串中的最長重複子串(字尾陣列)作一個由字串s倒數i個字元組成的子串的集合,其中0<i<s.length(),例如 字串strstr的字尾陣列為: {r,tr,str,rstr,trstr,
] 找工作知識儲備(2)---陣列字串那些經典演算法:最大子序列和,最長遞增子序列,最長公共子串,最長公共子序列,字串編輯距離,最長不重複子串,最長迴文子串
作者:寒小陽 時間:2013年9月。 0、前言 這一部分的內容原本是打算在之後的字串或者陣列專題裡面寫的,但看著目前火熱進行的各家網際網路公司筆試面試中,出現了其中的一兩個內容,就隨即將這些經典問題整理整理,單寫一
找出字串的最長不重複子串,輸出長度和子串
方法一:窮舉法,空間複雜度是O(1),時間複雜度是O(N^4) <pre name="code" class="java">public class Max_substring { public int max_unique_substring(char
求字串中的最長不重複子串
題目描述: 給定一字串只包含數字,請寫一個演算法,找出該字串中的最長不重複子串(不重複是指子串中每一元素不同於子串中其他元素) 如:“120135435”最長不重複子串為 “201354”
動態規劃之最長遞增子序列 最長不重複子串 最長公共子序列
【前言】動態規劃:與分治法相似,即通過組合子問題來求解原問題,不同的是分治法是將問題劃分為互不相交的子問題,遞迴求解子問題,再將他們組合起來求出原問題的解。 動態規劃則應用於子問題重疊的情況,通常用來求解最優化問題。這類問題可以有很多可行解,每個解都有一個值,我們希望尋找最
【字串處理系列】最長不重複子串
問題描述:最長不重複子串是要找出一個字串中沒有重複字元的最長子串,需要注意的是這裡指的是子串,而不是字元序列,子串要求連續,字元序列可以不連續 解題思路:建立兩個索引i , j,i在前,j在後; i和j之間的字元儲存在一個HashSet中,並且他們之間沒有重複的字元;每當i
求字串中的,最長不重複子串--java程式碼
package ali; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.TreeMap; p
找出字串最長不重複子串,輸出長度
找出字串的最長不重複子串,輸出長度和子串 方法一:窮舉法,空間複雜度是O(1),時間複雜度是O(N^4) java程式碼實現 <pre name="code" class="java">
java字串的最長不重複子串,
程式碼如下圖所示,時間複雜度為O(n),不僅獲得最長的子串長度,並輸出了子串。 public static void longestSubstring(String s) { int ret = 0; int m[]=new int[256]; fo
求最長不重疊子串
AR eating osi 說明 前綴 cas d+ join 不能 A musical melody is represented as a sequence of N (1<=N<=20000)notes that are integers in the
資料結構/最長非重複子串
給定一個字串,找字元中的最大非重複子串 基本方法、動態規劃、動態規劃+Hash 如下方法的時間複雜度O(n) list中儲存的是最終的輸出結果 public static int lengthOfLongestSubstring(String s) { if(s.length()==0){
【動態規劃】--最長無重複子串
給定一個字串,找出不含有重複字元的最長子串的長度。 示例: 給定 "abcabcbb" ,沒有重複字元的最長子串是 "abc" ,那麼長度就是3。 給定 "bbbbb" ,最長的子串就是 "b" ,長度是1。 給定 "pwwkew" ,最長子串是 "wke" ,長度是3。請注