【发布时间】:2015-03-22 10:22:08
【问题描述】:
有多个字符串从标准输入传递给这个程序。第一个 int 输入 T,是传递给该程序的测试用例(字符串)的数量。具有不同替代字符的字符串是完美的。如果替代字符相同,则需要删除这两个字符中的 1 个。基本上,您必须计算,需要删除多少个字符才能获得完美的字符串?例如:ABABAB 是完美的,而 AABABAA 并不完美。你需要删除2个A,第一个和最后一个。在AAAA中,你需要删除3个A才能得到一个完美的字符串。字符串输入可能非常大。计算此类删除次数的最快方法是什么?下面的代码是我写的,运行速度很慢。
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
int T= scan.nextInt();
String str;
int count=0;
for(int i=0; i<T; i++){
str=scan.next();
for(int j=0; j<str.length()-1; j++){
if(str.charAt(j)!=str.charAt(j+1)){
j+=2;
}
else{
count++;
}
}
System.out.println(count);
}
}
【问题讨论】:
-
它甚至无法编译
-
@Andremoniy 您好,请立即尝试。它将被编译。
-
不清楚,第一个 int 输入是什么?
-
抱歉,第一个int输入T,是传递给这个程序的测试用例数。
-
您一直在编辑源代码,首先发布无法编译的内容,然后发布无法终止的内容,这表明您在此处手动输入代码。请从您编写的程序中复制粘贴工作代码(例如直接从您的 IDE 中)。还要确保代码的缩进反映了代码结构。
标签: java string performance character