方法一:用一個標誌數組 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;