提问人:Pronay Sarker 提问时间:11/14/2023 最后编辑:Pronay Sarker 更新时间:11/14/2023 访问量:57
Java - (我的第 4 个测试用例花费太长时间来提供输出)
Java - (My 4th test case taking too long to give output)
问:
我的 java 程序遇到了一些问题。我的程序的工作是,如果字数超过 10,那么它将粘贴第一个单词、它们之间的单词数 + 和最后一个单词
如果字数少于 10,那么它只会粘贴单词。
import java.util.Scanner;
public class Main {
public static void main(String pkt[]) {
Scanner sc = new Scanner(System.in);
int loopnumber= sc.nextInt();
sc.nextLine();
while (loopnumber>0){
String word = sc.nextLine();
int length = word.length(); //to count String length
int n= length-2; // wordcount between them
if(length>10){ //will print first and last later of the string and the number-count between them
System.out.println(word.charAt(0)+ "" + n + "" +word.charAt(length-1));
}
else {
System.out.println(word);
}
loopnumber--;
}
}
}
当我输入时
4
word
localization
internationalization
pneumonoultramicroscopicsilicovolcanoconiosis
前三种情况运行良好。至于最后一个,即,我的程序花了太长时间来响应这个。大约30多秒...pneumonoultramicroscopicsilicovolcanoconiosis
但是当我刚刚输入
1
pneumonoultramicroscopicsilicovolcanoconiosis
然后我的程序运行良好。它提供即时输出。虽然两个测试用例()是相同的。pneumonoultramicroscopicsilicovolcanoconiosis
答:
0赞
Reilas
11/14/2023
#1
"...我的程序的工作是,如果字数超过 10,那么它会粘贴第一个单词、它们之间的单词数 + 和最后一个单词......”
作为参考,这些通常称为字符或字符。
下面是一个示例。
请注意,您可以跳过 nextLine 前进,而只使用 next 方法。
Scanner in = new Scanner(System.in);
String s;
int n = in.nextInt(), sn;
while (n-- > 0)
if ((sn = (s = in.next()).length()) > 10)
System.out.printf("%s%s%s%n", s.charAt(0), sn - 2, s.charAt(sn - 1));
else System.out.println(s);
输出
4
word
word
localization
l10n
internationalization
i18n
pneumonoultramicroscopicsilicovolcanoconiosis
p43s
评论