入力したものから重複を削除して出力せよという問題。
集合を使えばいけるってのは知ってたけど、ちょっとpythonでのやり方があやふやだったので
調べながら復習
知識として知っておくべきところは下記
・集合をつくるにはset()
・集合の中の要素に同じものがあるかどうかを調べるにはnot in
かin
・集合に追加するときは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="")