PROBLEM 05
最初に1度だけ現れる文字
文字列の中で重複しない最初の文字位置を返します。
ログの識別子を表す文字列から、全体で1度だけ現れる最初の文字を探します。
firstUniqChar(value) はその位置を返し、該当する文字がなければ -1 を返してください。
例
入力: "aabbcdeed"
出力: 4
理由: 位置4の "c" が、左から最初の出現回数1の文字
入力: "aabbcc"
出力: -1
制約
1 <= value.length <= 200,001- 入力は英小文字からなる
STEPWISE HINTS
ヒント
01考え方の方向
左から見ただけでは、その文字が後でもう一度現れるか分かりません。情報を集める走査と、答えを探す走査を分けます。
02使うデータ構造
Map で各文字の出現回数を数えます。その後、元の順番で回数が1の文字を探します。
03擬似コード
1回目のループで counts[char] を増やす。2回目のループで counts[value[i]] === 1 なら i を返す。なければ -1。
AFTER ACCEPTED
解説
AC 後に解説が開きます
まずは自分の言葉で方針を説明し、コードに落としてみましょう。