1
0

重複の削除 (paizaランク C 相当)

Posted at

入力したものから重複を削除して出力せよという問題。
集合を使えばいけるってのは知ってたけど、ちょっとpythonでのやり方があやふやだったので
調べながら復習
知識として知っておくべきところは下記
・集合をつくるにはset()
・集合の中の要素に同じものがあるかどうかを調べるにはnot inin
・集合に追加するときはadd(element)
(以下参考。詳しくは使う時に)
・要素を削除: discard(), remove(), pop(), clear()
・和集合: |演算子, union()
・積集合: &演算子, intersection()
・差集合: -演算子, difference()
・対称差集合: ^演算子, symmetric_difference()

・ちなみに集合をつくってそれをソートすればいいやんと考えたけど、その場合、問題と意図が違う結果になる。つまり今の文字の順番のまま重複を削除した結果がほしいわけで、ソートしてしまうと他の結果になる可能性がある。
⇒>出力するのはあくまでも今の順番のままなので、正解としては集合に追加した後そのままその要素を半角スペースなしで出力する方法となる

S =input()
A =set()
for element_S in S:
    if element_S not in A:
        A.add(element_S)
        print(element_S,end="")

1
0
0

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
1
0