34.最初の文字は一度だけ表示されます
問題:
1つの文字列(0 <=文字列<= 10000、アルファベットのすべての長さ)最初の文字を見つけることが一度だけ表示され、その位置に戻る、または-1でない場合(大文字と小文字を区別)で。
ソリューション:
思想:
この原理はまた、問題をカウントしている、同じカウントは訪問を保持するために、辞書を設定します。その後、元の文字にアクセスするために、再び電源を入れて、対応する辞書1かどうかを確認するために、そしてその位置に戻ります。
ここでは、コードのノートを取る必要がありますcount_dic.get(S [i])と==なしなしにするかどうか、0と比較することはできません見てget関数を使用し、辞書にはキーがありません。また初めて言及したデータの問題があり、私たちは辞書機能を持つ新しいキーが前面に配置されるため、特にピットである、それは私たちが間違った答えを見つけることができるようになります。我々は、範囲(N)内のjに対して**必要 ** 順次元の文字からアクセスします。
Pythonコード:
# -*- coding:utf-8 -*-
class Solution:
def FirstNotRepeatingChar(self, s):
# write code here
if (not s):
return -1
count_dic = {}
n = len(s)
for i in range(n):
# print(i)
if (count_dic.get(s[i]) == None):
count_dic[s[i]] = 1
else:
count_dic[s[i]]+= 1
for j in range(n):
if(count_dic[s[j]] == 1):
return j
return -1