旷视科技第二题什么鬼。
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还是超时。。难道有什么稀奇古怪的算法??
查看8道真题和解析