字符串的包含

方法一:用一個標誌數組 s[26],O(m+n)java

int s[26];

for( int i=0; i<a.length(); i++)
 s[ a.charAt(i)-'A'] = 1;

for( int j=0; j<b.length(); j++)
 if (s[ b.charAt(j)-'A'] != 1) 
    return false;

return true;

 

方法二:位運算法, O(m+n)算法

int hash = 0; 

for( int i=0; i<a.length(); i++)
    hash |= ( 1<< ( a[i]-'A'));

for( int j=0; j<b.length(); j++)
    if( (hash & ( 1<< (b[j]-'A') )) ==0)
        return false;

return true;
相關文章
相關標籤/搜索