alt kümesi olup olmadığını denetleme 26 bit bit dizisi olarak ingilizce alfabe kümesini temsil ediyorum. İlk bit 'a', ayarlanmış bit 'b' ve buna benzerdir. Böylece
dize ab iki bit zincirleri, Şimdi
11000000000000000000000000 olarak temsil verilir, ben 1 Bit dizisi olan 2. Bit dizisi bir alt kümesidir ise 1 '1', bit etti Bit dizisi her yerde, denetlemek istediğiniz Dize 2 de bir '1' olmalıdır. Bu, string1'deki tüm karakterlerin de string2'de mevcut olduğu anlamına gelir. Birisi bana bunu yapmanın en iyi yolunu bilmeme izin verebilir mi?
Aşağıdaki gibi basit bir yol biliyorum: bit string1 üzerinden yineleyin ve bit string2'de karşılık gelen bit'i kontrol edin. Bu yerine byte
ait BitSet
, sen and
veya xor
operatörlerini kullanabilirsiniz kullanarak olurduk daha verimli bir şekildeBit Dizeleri: bir bit dizgisinin başka bir
cevap
Eğer gerçekten Bit kümesiyle temsil etmek bir tamsayı (32 bit) kullanın ve bitwise AND (&) operatörünü kullanabilirsiniz sadece 26 bit kullanıyorsanız, iki kümenin intersection elde etmek için.
a & b == a
ise, a
b
bazı biraz akıllıca operatörü kullanılarak yapılabilir, ancak ben merak ediyorum. Ne yazık ki, shift
hariç, çeşitli bit işlemlerine sahiptir.
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/BitSet.html#xor%28java.util.BitSet%29
Önce sadece çok, basit int
Aynı işlemleri 26 karakter kullandığından xor
ikinci seti 0'a
olmalıdır ayarlayın. Sadece biraz daha dağınık bireysel bit olduğunu ayarı:
a |= 1 << offset;
bu eşitlik değil, alt kümeleri kontrol eder! – TimeToCodeTheRoad
Alt kümesi için a ve b = a, eşitlik için 'xor b = 0'. –
- 1. Bir bit dizesinin sonuna bit bir bit nasıl birleştirilir?
- 2. Bit Bit çevirme
- 3. Bir bit akışı nasıl yazılır
- 4. Her zaman 32 bit ve 64 bit makinede 64 bit
- 5. Bir 32 bit programında 64 bit sürücü kullanılması. Windows
- 6. 64-bit bir makinede 32-bit C# uygulaması çalıştırılıyor
- 7. Nasıl 32 bit C# uygulaması bir 64 bit DLL kullanabiliyor
- 8. endeksi MYSQL'de bir bit alanı
- 9. 32-bit işlemden 64-bit dll'de LoadLibrary çağrısı
- 10. nasıl ben bit maskesi
- 11. "Bırakılıyor" bit değerini yakalamak
- 12. Kırpma 1 Bir bit eşlem: I gibi bir en-boy oranına sahip bit haritası bilgisi
- 13. 64 bit CentOS sisteminde 32 bit özel Perl için 32 bit XS modülleri nasıl oluştururum?
- 14. LINQ ve lambda'ları bir listedeki nesnelerin bit bayrak numaralandırma özelliğinde bit veya bit yerine getirmek için nasıl kullanabilirim?
- 15. 64 bit makinede 64 bit olarak bir C++ programı nasıl derlenir?
- 16. Php'de bir bit maskesi nasıl uygulanır?
- 17. C# bir çarpma yüksek bit Bilgisayar
- 18. Object.hashCode() 31-bit bir sebebi var mı?
- 19. Java'da bir tamsayı bit-bit'i nasıl okunur?
- 20. Bir dize C bit nasıl dönüştürülür C#
- 21. Oracle, bir 64 bit istemcisiyle .Net'den
- 22. Bir uygulamanın 32 veya 64 bit sürümünü,
- 23. Bir BIT sütununun MAX değerini alın
- 24. Mysql'de nasıl bir bit haritası eşleştirilir?
- 25. Bit tipi bir sütun sayısını nasıl alabilirim?
- 26. Linq/lambda kullanarak bir bit bayrağı oluşturma
- 27. Bit maskesinde belirli bir biti nasıl kapatırsınız?
- 28. 64 bit makinede yakalanan 32 bit işlemin hata ayıklama dökümü
- 29. 64-bit Windows'da 32 ve 64 bit birlikte çalışabilirlik
- 30. EDSAC - 17 bit ve 35 bit tam sayıları
bir alt kümesi, bu bir 'String' veya tamamlayıcı bir değer (' Integer') ilk 26 biti işgal etmektedir olarak depolandığı nasıl? İkincisi, basit bitwise işlemleri hile yapmak gerekir, daha karmaşık .. – Nim