在资格赛期间,提出了以下问题:
你已经获得了一系列要学习和记忆的单词。作为一个勤奋的语言和艺术学生,你决定不学习它们,而是根据它们制作毫无意义的游戏。你想出的一个游戏是看你如何连接单词以生成字典上最低的字符串。
输入
作为玩这个游戏的输入,你将收到一个包含整数N的文本文件,你需要玩游戏的单词数量。接下来是N个单词集,每个单词集以整数M开始,集合中的单词数,后跟M个单词。输入中的所有标记将由一些空格分隔,除了N和M之外,它将完全由小写字母组成。
输出
您的提交应包含按字典顺序排列的最短字符串 每个对应的单词集,每行一个顺序。
约束
1 <= N <= 100
1 <= M <= 9
1 <= all word lengths <= 10
示例输入
5
6 facebook hacker cup for studious students
5 k duz q rc lvraw
5 mybea zdr yubx xe dyroiy
5 jibw ji jp bw jibw
5 uiuy hopji li j dcyi
示例输出
cupfacebookforhackerstudentsstudious
duzklvrawqrc
dyroiymybeaxeyubxzdr
bwjibwjibwjijp
dcyihopjijliuiuy
我写的程序如下:
chomp($numberElements=<STDIN>);
for(my $i=0; $i < $numberElements; $i++)
{
my $string;
chomp ($string = <STDIN>);
my @array=split(/\s+/,$string);
my $number=shift @array;
@sorted=sort @array;
$sortedStr=join("",@sorted);
push(@data,$sortedStr);
}
foreach (@data)
{
print "$_\n";
}
该程序为给定的测试用例提供了正确的输出,但Facebook仍然显示它是不正确的。这个程序有什么问题吗?
答案 0 :(得分:4)
1
2 ba b
您的程序输出bba
,这是不正确的。 bab
早先按字典顺序排列。
答案 1 :(得分:0)
这是一个ruby程序。 由于这是一个快速的10分钟黑客,我没有比较性能。
biginput = [
['facebook', 'hacker', 'cup', 'for', 'studious', 'students'],
['k', 'duz', 'q', 'rc', 'lvraw'],
['mybea', 'zdr', 'yubx', 'xe', 'dyroiy'],
['jibw', 'ji', 'jp', 'bw', 'jibw'],
['uiuy', 'hopji', 'li', 'j', 'dcyi'],
['ba', 'b']
]
biginput.each do |input|
out = ""
input.each do |word|
word << word[0]
end
input.sort!
# puts temp.inspect
input.each do |res|
out << res[0..-2]
end
puts out
end
答案 2 :(得分:0)
#!/usr/bin/env perl
while (<DATA>) {
chomp;
my($num_words, @words) = split /\s+/;
my @sorted_words = sort @words;
$" = '';
print @sorted_words, "\n";
}
__DATA__
6 facebook hacker cup for studious students
5 k duz q rc lvraw
5 mybea zdr yubx xe dyroiy
5 jibw ji jp bw jibw
5 uiuy hopji li j dcyi
2 ba b
答案 3 :(得分:0)
String [] student = {"jibw","ji","jp","bw","jibw"};
Arrays.sort(student, new Comparator<String>(){
@Override
public int compare(String s1, String s2) {
return (s1+s2).compareTo(s2+s1);
}
});
for(int i=0;i<student.length;i++)
System.out.print(student[i]+" ");
答案是:bwjibwjibwjijp。如果你只是排序和连接答案将是bwjijibwjibwjp这是不正确的。