का सबसेट है, मैं 26 बिट बिटस्ट्रिंग के रूप में अंग्रेजी अक्षरों के सेट का प्रतिनिधित्व कर रहा हूं। पहला बिट 'ए' से मेल खाता है, सेट बिट 'बी', और इसी तरह से। इस प्रकार,
स्ट्रिंग अब 11000000000000000000000000
अब के रूप में, यह देखते हुए प्रस्तुत किया जाता है दो बिट श्रृंखला, मैं अगर bitstring 1 2. bitstring के एक सबसेट है यही कारण है की जांच करने के bitstring 1 एक '1', सा गया है सभी स्थानों में चाहते हैं स्ट्रिंग 2 में '1' भी होना चाहिए। इसका मतलब है कि स्ट्रिंग 1 में सभी वर्ण स्ट्रिंग 2 में भी मौजूद हैं। क्या कोई मुझे ऐसा करने का सबसे अच्छा तरीका बता सकता है?
मुझे निम्नानुसार एक सरल तरीका पता है: बिट स्ट्रिंग 1 के माध्यम से पुनरावृत्ति करें और बिट स्ट्रिंग 2 में संबंधित बिट की जांच करें। हालांकि, मैं अगर यह एक अधिक कुशल तरीके सेबिट स्ट्रिंग्स: यह जांचना कि क्या एक बिटस्ट्रिंग किसी अन्य
उत्तर
आप वास्तव में केवल 26 बिट का उपयोग कर रहे हैं, तो आप bitset प्रतिनिधित्व करने के लिए एक पूर्णांक (32 बिट) का उपयोग कर सकते हैं और bitwise AND (&) ऑपरेटर का उपयोग, दो सेटों के intersection प्राप्त करने के लिए।
तो a & b == a
, a
b
में कुछ बिट बुद्धिमान ऑपरेटर का उपयोग आप byte
के बजाय BitSet
, आप and
या xor
ऑपरेटरों इस्तेमाल कर सकते हैं का उपयोग करेंगे तो किया जा सकता है सोच रहा हूँ।
BitSet
दुर्भाग्य से shift
को छोड़कर, विभिन्न बिट ऑपरेशंस हैं।
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/BitSet.html#xor%28java.util.BitSet%29
पहले xor
दूसरे सेट 0.
होना चाहिए जब से तुम सिर्फ 26 वर्ण भी उपयोग करते हैं, आप एक सरल int
साथ भी ऐसा ही कर सकते हैं, की स्थापना की। बस अलग-अलग बिट्स स्थापित कर रही है थोड़ा अधिक गन्दा:
a |= 1 << offset;
यह समानता के लिए जांच करता है, सबसेट नहीं! – TimeToCodeTheRoad
सबसेट के लिए 'ए और बी = ए', समानता के लिए 'xor b = 0'। –
- 1. यह जांचना कि क्या एक स्ट्रिंग वेक्टर
- 2. यह जांचना कि क्या एक स्ट्रिंग XXXX
- 3. यह जांचना कि क्या एक एनएसडीएटी
- 4. यह जांचना कि क्या बफर को आर
- 5. यह जांचना कि क्या सत्यापन कोड
- 6. यह जांचना कि क्या कंसोल अनुप्रयोग C#
- 7. यह जांचना कि फ़ाइल 32 बिट या 64 बिट है - विंडोज
- 8. सी # यह जांचना कि कोई छवि किसी अन्य छवि के भीतर मौजूद है
- 9. यह जांचना कि फ़ाइल वास्तव में ईपीप्लस
- 10. यह जांचना कि कोई फ़ाइल .NET असेंबली
- 11. यह जांचना कि दिनांक सप्ताहांत है PHP
- 12. यह निर्धारित करें कि किसी स्ट्रिंग में स्ट्रिंग्स
- 13. जांचें कि एक रेगेक्स किसी अन्य रेगेक्स
- 14. यह जांचना कि कोई निश्चित प्रकार एक कार्य प्रतिनिधि
- 15. यह जांचना कि क्या रेपो को गिटहब एपीआई
- 16. यह जांचना कि क्या उपयोगकर्ता पहले से ही ड्रूपल
- 17. जांचना कि JSON
- 18. वीबीस्क्रिप्ट: जांचना कि उपयोगकर्ता इनपुट एक पूर्णांक
- 19. जांचना कि कोई प्रकार किसी अन्य प्रकार के निहित या स्पष्ट प्रकार रूपांतरण को .NET
- 20. यह निर्धारित करने के लिए कि कोई दिनांक किसी अन्य
- 21. यह निर्धारित करता है कि किसी सूची में अन्य सूचियां
- 22. यह जांचना कि स्ट्रिंग खाली है या नहीं
- 23. क्या यह जांचना संभव है कि यूआई तत्व में एक निश्चित संदर्भ आउटलेट है या नहीं?
- 24. क्या यह जांचना संभव है कि दो sha2 हैश एक ही सादे पाठ से आए हैं?
- 25. यह जांचना बेहतर है कि इसके अंदर या बाहर किसी फ़ंक्शन की आवश्यकता है या नहीं?
- 26. जांचना कि argv [मैं] सी ++
- 27. क्या एक इंटरफ़ेस किसी अन्य इंटरफ़ेस को
- 28. किसी टेक्स्टबॉक्स से पूर्णांक मान प्राप्त करना, यह जांचना कि यह NaN या null आदि है या नहीं?
- 29. यह जांचना कि क्या MySQL डेटाटाइम पुराना है तो अब php से 1 दिन()
- 30. यह जांचना कि क्या दिनांक वर्तमान समय के 7 दिनों के भीतर है
के एक सबसेट यह कैसे एक 'स्ट्रिंग' के रूप में या एक अभिन्न मूल्य (' Integer') पर कब्जा पहले 26 बिट के रूप में संग्रहीत किया जाता है, है? यदि उत्तरार्द्ध, सरल bitwise संचालन चाल करना चाहिए, और अधिक जटिल .. – Nim