[RUBY] Studieren bei CodeWar (Rubin) ②

Über diesen Artikel

Nach und nach wird das ausgegeben, was ich durch den kürzlich gestarteten Codewar gelernt habe

Problem

An isogram is a word that has no repeating letters, consecutive or non-consecutive. Implement a function that determines whether a string that contains only letters is an isogram. Assume the empty string is an isogram. Ignore letter case.

Erstellen Sie eine Methode, um zu überprüfen, ob die als Argument übergebene Zeichenfolge ein Isogramm ist. Groß- und Kleinschreibung werden jedoch ignoriert.


is_isogram("Dermatoglyphics" ) == true
is_isogram("aba" ) == false
is_isogram("moOse" ) == false # -- ignore letter case

Die Antwort dachte ich

def is_isogram(string)
  string = string.downcase.chars
  if string == string.uniq
    return true
  else 
    return false
  end
end

(1) Verwenden Sie zuerst "Kleinbuchstaben", um die als Argument übergebene Zeichenfolge ganz niedriger zu machen, und verwenden Sie dann "Zeichen", um jedes Zeichen in das Array einzufügen. (2) Wenn jedes Zeichen, das in das Array eingefügt wird, und das Array, das doppelte Zeichen nach der "uniq-Methode" ausschließt, dasselbe sind, wird "true" zurückgegeben. ③ Wenn die Sequenzen unterschiedlich sind, wird "false" zurückgegeben.

Ideale Antwort

def is_isogram(string)
  string.downcase.chars.uniq == string.downcase.chars
end

Selbst wenn Sie sich nicht die Mühe machen, einen bedingten Zweig zu erstellen, wird mit == true und false zurückgegeben. .. .. ..

Recommended Posts

Studieren bei CodeWar (Rubin) ②
Studieren bei CodeWar (Rubin) ⑥ injizieren
Studieren bei CodeWar
Studieren bei CodeWar (Rubin) ③ Squeeze, gsub
Studieren bei CodeWar (Rubin) ⑤ proc
Studieren bei CodeWar (Ruby) ④ case ~ when
[At Coder] Einführung von Competitive Pro mit Ruby