目標:なにがしたいか?
全要素がユニークな文字列Aと全要素がユニークな文字列Bはほぼ同じかどうか
問題
ある文字列”xyz”があります。これを用いてパスワードを作成することにしました。
条件を満たしたとき、”OK”を出力し、満たさないときは”NG”を出力します。
条件1:完全に一致した場合NGとする。(ほぼ同じではないので)例: “xyz”
条件2:文字列の長さが同じでない場合もNG   例: “xy”
条件3:文字列を入れ替えたとき同じならOK 例:”zyx”
条件4:文字列の要素はユニークである例:”abcd” ◎   例:”aabc”×
与えられる入力値1
xyz xy
期待する出力
"NG"
与えられる入力値2
xyz zyx
期待する出力2
"OK"
コードと解説
a = gets.chomp.chars
b = gets.chomp.chars
  if a == b || a.size != b.size
    puts "NG"
  elsif a - b == [] 
    puts "OK"
  else puts "NG"
end
https://paiza.io/ja/projects/new
↑こちらにコピペして「実行」で確認できます。
↓このような出力結果になっていればOKです。
※配列と配列の重複している部分は差集合-を使うことで
順番が違う場合でも適用される
差集合
※更に詳しく
実際に
["x", "y", "z"] - ["z", "y", "x"]
の時[]になるので、[]になったときに”OK”を出力している
ただし↓の場合

 
						
