これは非常に単純なようですが、もし私が精神的なブロックを持っていれば。
私は、言う、唯一の「_」と「X」を含む文字列を持っている、と私は後方のすべてのx系列の位置を見つける必要がある:行内に同じ文字のシーケンスの位置を見つける
xxx___xxx___xxx
___x__xxx_xxx__
最速のアプローチは何ですか?私はKMPかBMを使うべきですか、それとも過剰ですか?
これは非常に単純なようですが、もし私が精神的なブロックを持っていれば。
私は、言う、唯一の「_」と「X」を含む文字列を持っている、と私は後方のすべてのx系列の位置を見つける必要がある:行内に同じ文字のシーケンスの位置を見つける
xxx___xxx___xxx
___x__xxx_xxx__
最速のアプローチは何ですか?私はKMPかBMを使うべきですか、それとも過剰ですか?
文字列で文字列をスキャンできます。ここにPythonの擬似コードがあります。
prev = ''
# enumerate(collection) enumerates collection elements along with their indices
# in the form of tuple (index, element)
# in python strings are collections of characters
for i, c in enumerate(string):
if c == 'x' and c != prev:
print "found x sequence at position %d" % i # (this prints out the index)
prev = c
文字列を文字でスキャンすると何が問題になりますか? – soulcheck
私はリニアスキャンに同意します:あなたは少なくとも入力を読むことができるので、O(n)を打ち負かすことはできません –