① 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();
}
}
运行截图:
希望能帮助你哈