旷视科技第二题什么鬼。
public class Main{ public static void main(String args[]) { Scanner sc=new Scanner(System.in); int k=sc.nextInt(); sc.nextLine(); String str=sc.nextLine(); String res=""; int maxNum=0; int count=0; //不同字符数量 int weizhi=0; for(int i=0;i<str.length();i++) { if(!res.contains(str.charAt(i)+"")) { if(count<k) { count++; res+=str.charAt(i); } else { char c=res.charAt(0); res=res.substring(weizhi+1, res.length()); res+=str.charAt(i); } } else { res+=str.charAt(i); if(str.charAt(i)==res.charAt(0)) weizhi=i; } maxNum=Math.max(maxNum, res.length()); } System.out.print(maxNum); } }
这旷世科技第二题就离谱。刚开始使用ArrayList一个一个搞超时了,后来换成String用SubString还是超时。。难道有什么稀奇古怪的算法??