回文作成プログラミングコンテスト 解答
「え、妻が松江?」松江Ruby会議07協賛 回文作成プログラミングコンテスト
paiza(パイザ)Online(オンライン)Hackathon(ハッカソン)略してPOH(ポー)! 6+
https://paiza.jp/poh/joshibato/matsue-ruby
こっちも解いたので解答晒す。
Python 278 byte
Pythonはstring[::-1]で文字列の逆順が取得できるの本当便利
追記
上記のコードに、paizaのテストケースにはないけど、間違ってしまうケースがあることに気付いたので再挑戦。
ついでにコードも244 byteまで減らした。
1回目のコードで間違った答えを出力してしまうケースは以下のとき。
期待値:aabbaa
1回目のコードの出力:aaaaaa
paiza(パイザ)Online(オンライン)Hackathon(ハッカソン)略してPOH(ポー)! 6+
https://paiza.jp/poh/joshibato/matsue-ruby
こっちも解いたので解答晒す。
Python 278 byte
l,k,m=[],[],[] for i in range(int(raw_input())): c=raw_input() r=c[::-1] if r in l:k+=([c] if c < r else [r]);l.remove(r) else: l+=[c] if r==c:m+=[c] k.sort();f=''.join(k);print f+(min(m) if len(m)>0 else "")+f[::-1]
Pythonはstring[::-1]で文字列の逆順が取得できるの本当便利
追記
上記のコードに、paizaのテストケースにはないけど、間違ってしまうケースがあることに気付いたので再挑戦。
ついでにコードも244 byteまで減らした。
l,k=[],[] for i in range(input()): c=raw_input();r=c[::-1] if r in l:k+=([c] if c< r else [r]);l.remove(r); else:l+=[c] f=''.join(sorted(k));m=[x for x in l if x==x[::-1]];print f+(min(m) if len(m)>0 else "")+f[::-1]
1回目のコードで間違った答えを出力してしまうケースは以下のとき。
3 aa bb aa
期待値:aabbaa
1回目のコードの出力:aaaaaa