WILDCARD 문제 질문입니다

  • niceghp12
    niceghp12

    문문제 링링크

    bool match(int wpos, int spos)
    {
        int &ret = dp[wpos][spos];
        if (ret != -1) return ret;
    
        while (wpos < w.size() && spos < s.size() && (w[wpos] == '?' || w[wpos] == s[spos])) {
            wpos++; spos++;
        }
    
        if (wpos == w.size()) return ret = (spos == s.size());
    
        if (w[wpos] == '*') {
            for (int i=spos;i<=s.size();i++) {
                if (match(wpos+1,i)) return ret= 1;
            }
        }
        return ret = 0;
    }
    

    위 문제를 다음과 같이 책에서 하라는 대로 코딩했는데,
    for (int i=spos;i<=s.size();i++) 에서 왜 i<=s.size() 인가요?
    s.size() 까지 가서 match를 호출하면 어떻게 되는건가요?


    8년 전
2개의 댓글이 있습니다.
  • niceghp12
    niceghp12

    이거 한글 입력이 잘 안되는데.. 원래 다 그런건가요?


    8년 전 link
  • jongyeop.lee
    jongyeop.lee

    wildcard: '*'
    file name: 'a'
    를 비교할 때 s.size() 까지 해야
    둘다 empty string을 비교해서 true로 리턴할 수 있습니다.

    s.size() 보다 작으면
    wildcard: empty string
    file name: 'a'
    로 비교하여 false를 리턴합니다.


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.