0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Ruby] AtCoder過去問 B - 美しい文字列

Posted at

##はじめに
AtCoder過去問B問題をRubyで解いてみました。
よろしくお願いします。

問題はこちらから確認してください↓

##B - 美しい文字列
まずは入力を受け取ります。

w = gets.chomp.chars

一文字ずつ分けて、配列として受け取ります。
入力例1でいえばこのように受け取れているはずです↓
["a", "b", "a", "c", "c", "a", "b", "a"]

countメソッドでそれぞれの文字が配列wの中にいくつあるか調べ、それが偶数個なのかどうかeven?メソッドで調べます。

さらに、全ての種類の文字が偶数個ないといけないので、all?メソッドで上記の条件が全て真の時にtrueを返すようにします。trueであればYesを出力させ、falseならNoを出力させます。

配列wで使われている文字の種類はw.uniqで表現します。

w = gets.chomp.chars
 
if w.uniq.all?{ |s| w.count(s).even?}
  puts "Yes"
else
  puts "No"
end

これで完成です。

このコードを短くしようと試みました。↓

w = gets.chomp.chars.sort

puts (w.uniq.all?{ |s| w.count(s).even?}) ? "Yes" : "No"

あまりこの書き方をしないのですが、1行でかけました。
わかりやすさ的には初めの方が好きです。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?