pattern 可以跨 strings查找匹配

pattern 可以跨 strings, 但是必須要是連續的, 注意是 iterable, 所 以是不能回頭的 我是 stringBuffer 去保存已經⾛過的部分, 如果不 match rewind 的時候就從 stringBuffer 裡⾯的 character 開始 check 不夠再從 iterater 拿 boolean contains(String pattern, Iterable strs) pattern: "abc" strs : "ab", "cd" -> true strs : "aa", "bcd" -> true strs : "ab", "ac" -> false

一亩三分地

没有OJ,不知道以下是否正确

bool contains(string pattern, Iterable<String> strs)
{
    vector<int> next=getNext(pattern);

    string s="";
    int start=0,si=0,si=0;
    while(1)
    {
        while(strs.hasNext())
        {
            s+=strs.getNext();
        }

        while(si<(int)s.length() && sj<(int)pattern.size())
        {
            if(sj==-1 || s[si]==pattern[sj])
            {
                si++;sj++;
            }
            else 
            {
                sj=next[sj];
            }
        }

        if(sj==pattern.size())return true;
        else
        {
            //不知道这样是否可以合理给下一次循环使用
            s=substr(si-sj);
            si=0;
        }
    }

    return false;
}

results matching ""

    No results matching ""