मुझे बिटसेट विधियों में इस सरल प्रश्न का उचित समाधान नहीं मिला। सवाल बाइट्स के सामान्य माता-पिता को बाएं से शुरू करने के लिए है। यहाँ कुछ उदाहरण हैं:एकाधिक बिट्स जावा के सामान्य अभिभावक को ढूंढना जावा
011
010
001
Common Parent: 0
00
010
Common Parent: 0
00
11
10
Common Parent: None
1101
111
1100
Common Parent: 11
मेरे समाधान के लिए और Bitsets था, और फिर इन Bitsets की XOR पर पहला सेट बिट की तलाश द्वारा सही लंबाई पाते हैं। यह कुछ मामलों के लिए काम किया लेकिन दूसरों के लिए असफल रहा। मेरे पास एक और विचार है जिसमें बिट्ससेट्स पर लूपिंग शामिल है जो आपको समाधान देने से बचने में बहुत खुशी होगी।
[मुझे पता है कि उन्हें बाइनरी पेड़ के रूप में प्रस्तुत किया जा सकता है, लेकिन इसमें एक मेमोरी ओवरहेड शामिल है जिसे मैं केवल बिट्ससेट और कुछ बुलियन ऑपरेशंस (एंड, ओआर, एनओआर, एनएएनडी, एक्सओआर) पर परिचालन करके टालना चाहता हूं। ]