次のアルゴリズムの問題に遭遇しました(src: http://www.careercup.com/question?id=15029889 )
問題: c = 'a'<br> w = “apple”<br> c は w をカバーしますが、w が c を含む場合。
c_set = {'a', 'b', 'c', 'g'}
w_set = {'apple', 'ibm', 'cisco', 'google'}
c_set は w_set をカバーします。 c_set のいくつかの c。
c_set と w_set が与えられた場合、w_set は c_set によってカバーされているか?
フォローアップ: w_set が固定されている場合、たとえば本、c_set がこの w_set をカバーしているかどうかを判断するにはどうすればよいですか?
考えられる解決策の 1 つは
、26 ビット (文字ごとに 1 ビット) を使用して w_set 内の各単語を表し、c_set
に対して同様のビットマスクを形成する場合、カバレッジをチェックする解決策は、
「c_set_bitmask & word_i_bitmask」を実行することです。
これが各単語でゼロでない場合、すべての単語をカバーしています。
私の質問は、 w_set が本などの静的 であることを考えると、これよりも良いことはできないかということです。