慢算法比赛

时间:2014-05-26 14:54:40

标签: ruby

我试图解决SPOJ contest问问"两个字是字谜?"。我将它减少到4行,但它仍然太慢。

while STDIN.gets
  y = $_.downcase.split
  if (y[0].chars.to_a.sort == y[1].chars.to_a.sort) then puts "YES" else puts "NO" end
end

1 个答案:

答案 0 :(得分:1)

您的代码看起来没问题,您可以通过在实际排序之前检查具有相同长度的单词来加快速度:

while !STDIN.gets.chomp.empty?
  first_word, second_word = $_.downcase.split
  if first_word.length == second_word.length && 
    first_word.chars.sort == second_word.chars.sort
    puts "YES" 
  else 
    puts "NO" 
  end
end