アルゴリズム/データ構造を学習しようとしています。私の知識を向上させるために、私はいくつかのオンライン問題を解決しようとしています。 私は法の下に試してみましたpracticeque0,1または2だけからなる文字列が与えられた場合、0、1および2の等しい数を持つ部分文字列の数を数えます。
で与えられている解決しようとしています問題のひとつ:
def count_zero_one_two():
s = '102100211'
s_len = len(s)
count = 0
for i in range (s_len-1):
j = i+1
k = j+1
#print i, j, k, count
#print s[i], s[j], s[k]
if k > (s_len-1):
print "end"
break
elif (s[i] != s[j]) and (s[i] !=s[k]) and (s[j] != s[k]):
print s[i], s[j], s[k]
print "not equal"
count = count+1
#print count
else:
print s[i], s[j], s[k]
print "equal"
k = j +i
print count
count_zero_one_two()
質問:私の入力文字列がある場合、「102100211」、次に5をする必要があります数えるが、私は4を得る。
問題は次のとおりです。0,1または2だけの文字列を指定すると、count 0、1、2の同数の部分文字列の数。 –
102、021、210、021,210021 - これはこの例の回答です。うまくいけば、これはあなたにこの問題に対する新しいアプローチが必要であることを納得させるでしょう。 –
ここでは構文に1つの問題があります: 'x = '9999999'' 'for i in range(len(x)-1):print i'は' 0,1,2,3,4,5,6あなたが期待しているように、「9,9,9 ...」ではないようなものです。 –