【文字列処理メニュー】> 重複の削除 (paizaランク C 相当) [難易度: 1405 ±13]
※リンク先へ移動するためには[paiza]へのログインが必要です。
数字を表す文字列 S が与えられるので、 S の先頭(左側)から S を見て行ったときにその数字が現れたのが 2 回目以降の場合、その数字を削除した文字列(重複した数字を削除した文字列)を求めてください。
例
・ S = "1234567890" のとき
数字に重複はないので "1234567890" が答えとなります。
・ S = "112123123412345" のとき
"12345" が答えとなります。
・ 1 は 1 文字目に初めて現れるので、それ以降の 1 は読み飛ばします。
・ 2 は 3 文字目に初めて現れ、それ以降の 2 は読み飛ばします。
・ 3 は 6 文字目に初めて現れ、それ以降の 3 は読み飛ばします。
・ 4 は 10 文字目に初めて現れ、それ以降の 4 は読み飛ばします。
・ 5 は 15 文字目に初めて現れ、それ以降の 5 は読み飛ばします。
入力値(例)
1234567890
出力値(例)
1234567890
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $input = trim(fgets(STDIN)); $len = mb_strlen($input); for($i = 0; $i < $len; $i++) { $number[] = substr($input, $i, 1); } $num_unique = array_unique($number); foreach($num_unique as $value) { echo $value; } ?> |
メモ
array_unique()は、配列の重複を削除する関数です。