① java 實現 一個字元串中不重復最長子串
這個函數的目的是求最長不重復子串,所謂不重復子串是指由某個字元串中相鄰的N個字元組成,這個N內所有字元都是不重復的,最長是指這個N最大。如字元串"abcdefghiud",最長的不重復的子串為"abcdefghiu"
cursor裡面存放字元的在字元串中的位置
lengAt[i]存放以字元string.charAt(i)結尾的最長子字元串的長度
max的目的就是確定這個最長,因為最開始可能找到的子串比以後找到的子串短,所以用max比較
② 急求!!!!用java 寫一個 字元串去重 的程序!
用set,用list還要自己寫方法判斷是不是重復的,肯定用set然後直接用set.add(「人」)直接添加,重復的直接就過濾掉了,都不用for循環..
③ java如何去掉字元串中重復的字元
lz 你好
這個就是一個比較簡單的演算法題 , 你可以自己寫
但是用Java語言就不需要了 , Java自帶泛型相關的類 , 很有用
其中TreeSet集合能自動識別添加的是否重復 , 重復的將不會添加 , 很方便
以下是實現代碼:
importjava.util.List;
importjava.util.Scanner;
publicclassDeleteRepeated{
privateStringstr;
privateTreeSet<String>noReapted;//帶有String類型的TreeSet泛型
publicDeleteRepeated(){
Scannerin=newScanner(System.in);
System.out.println("輸入一個字元串:");
str=in.nextLine();
noReapted=newTreeSet();
}
//清楚重復的數據
publicvoidremoveRepeated(){
for(inti=0;i<str.length();i++){
noReapted.add(""+str.charAt(i));
//str.charAt(i)返回的是char型所以先加一個""空格,轉換成String型
//TreeSet泛型能保證重復的不加入,而且有序
}
str="";
for(Stringindex:noReapted){
str+=index;
}
//輸出
System.out.println(str);
}
publicstaticvoidmain(String[]args){
DeleteRepeateddr=newDeleteRepeated();
dr.removeRepeated();
}
}
運行截圖:
希望能幫助你哈