AtCoder Beginner Contest C - String Transformation Difficulty: 946
Ce thème, opération de chaîne de caractères
Comme ce sont des lettres minuscules différentes, si vous y pensez dans l'autre sens, vous devriez envisager la duplication, donc parler de chaînes de caractères en double est ** hash **. Examinez le revers du hachage pour que le dos de la pièce soit le devant. 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
Nous obtenons le hachage h
qui regarde la chaîne t
de la chaîne s
et le hachage g
qui regarde la chaîne s
de la chaîne t
.
flat.rb
puts h.flatten(-1) == g.invert.flatten(-1) ? 'Yes' : 'No'
Obtenez l'inverse du hachage (échangez la clé et la valeur) avec ʻinvert` et comparez. Python
Comme vous pouvez le voir dans Swap the key and value of the dictionary in one line -Qiita *, il semble difficile de trouver l'inverse du dictionnaire, donc *** Python *** sera fermé. ~~ Cela ne semble pas être lié à l'apprentissage automatique ~~
Quand j'ai étudié Ruby Engineer Certification Exam Silver *, je pensais que je n'utiliserais pas ʻinvert ou
flatten`, mais en réalité J'ai été surpris de l'utiliser pour.
Un apprentissage de base est nécessaire.
Ruby | |
---|---|
Longueur du code(Byte) | 375 |
Temps d'exécution(ms) | 514 |
Mémoire(KB) | 22780 |
Site référencé
Recommended Posts