AtCoder Beginner Contest C - String Transformation Difficulty: 946
Dieses Thema, Zeichenkettenoperation
Da es sich um unterschiedliche Kleinbuchstaben handelt, sollten Sie, wenn Sie umgekehrt darüber nachdenken, eine Duplizierung in Betracht ziehen. Wenn Sie also von doppelten Zeichenfolgen sprechen, ist dies ** Hash **. Untersuchen Sie die Rückseite des Hashs so, dass die Rückseite der Münze die Vorderseite ist. Ruby
ruby.rb
s = gets.chomp.chars
t = gets.chomp.chars
h = {}
g = {}
s.size.times do |i|
if h[s[i]]
if h[s[i]].count(t[i]) == 0
h[s[i]] << t[i]
end
else
h[s[i]] = [t[i]]
end
if g[t[i]]
if g[t[i]].count(s[i]) == 0
g[t[i]] << s[i]
end
else
g[t[i]] = [s[i]]
end
end
puts h.flatten(-1) == g.invert.flatten(-1) ? 'Yes' : 'No'
hash.rb
h = {}
g = {}
s.size.times do |i|
if h[s[i]]
if h[s[i]].count(t[i]) == 0
h[s[i]] << t[i]
end
else
h[s[i]] = [t[i]]
end
if g[t[i]]
if g[t[i]].count(s[i]) == 0
g[t[i]] << s[i]
end
else
g[t[i]] = [s[i]]
end
end
Wir bekommen den Hash h
, der die Zeichenfolge t
von der Zeichenfolge s
betrachtet, und den Hash g
, der die Zeichenfolge s
von der Zeichenfolge t
betrachtet.
flat.rb
puts h.flatten(-1) == g.invert.flatten(-1) ? 'Yes' : 'No'
Holen Sie sich die Umkehrung des Hash (tauschen Sie den Schlüssel und den Wert) mit "invertieren" und vergleichen Sie. Python
Wie Sie in Tauschen Sie den Schlüssel und den Wert des Wörterbuchs in einer Zeile -Qiita * sehen können, scheint es schwierig zu sein, die Rückseite des Wörterbuchs zu finden, also *** Python *** wird geschlossen. ~~ Es scheint nicht mit maschinellem Lernen zu tun zu haben ~~
Als ich Ruby Engineer Certification Exam Silver * studierte, dachte ich, ich würde nicht "invertieren" oder "abflachen" verwenden, sondern in Wirklichkeit Ich war überrascht, es zu benutzen. Grundlegendes Lernen ist notwendig.
Ruby | |
---|---|
Codelänge(Byte) | 375 |
Ausführungszeit(ms) | 514 |
Erinnerung(KB) | 22780 |
Referenzierte Site
Recommended Posts