文字列問題python実装(3)

821 ワード

質問:C++のstrstr()関数をシミュレートする関数を書きます.この関数の戻り値は、主列の文字のサブ列の位置以降のすべての文字です.例えば、主列は「123456」で、サブ列は「234」で、関数の戻り値は「2345678」です.
python版コード:
# -*- coding:utf-8 -*-
#   :       C++ strstr()  :                         ,
#           "123456",   "234",          "2345678"。 
# by chasdmeng

def strstr(string, strCharSet):
    for i in range(len(string)):
        temp = i
        j = 0
        if string[i] == strCharSet[j]:
            while string[i] == strCharSet[j]:
                i+=1
                j+=1
                if j == len(strCharSet)-1:
                    return string[i-j:]
            i = temp
    return None

if __name__ == '__main__':
    string = "12345554555123"
    strCharSet = "234"

    print strstr(string, strCharSet)