एक लिंडन शब्द एक स्ट्रिंग है है सख्ती से है कोषगत छोटे इसकी चक्रीय रोटेशन में से किसी की तुलना में। बाइनरी स्ट्रिंग को देखते हुए, यह निर्धारित करें कि क्या यह लिंडन शब्द संभव के रूप में कुछ बाइट्स में है।
उदाहरण के लिए, 001011
एक लिंडन शब्द है। इसके रोटेशन को नीचे सूचीबद्ध किया गया है, जो पहले प्रतीक को अंत तक बार-बार स्थानांतरित करके प्राप्त किया जाता है।
001011
010110
101100
011001
110010
100101
इनमें से, मूल स्ट्रिंग सबसे पहले lexicographically आती है, या समकक्ष रूप से, सबसे छोटी बाइनरी संख्या का प्रतिनिधित्व करती है।
हालाँकि, 001001
एक लिंडन शब्द नहीं है क्योंकि इसका एक घुमाव अपने आप में एक ही है, जो इसे जल्द से जल्द lexicographically के लिए बाँधता है।
इनपुट: एक गैर-खाली बाइनरी स्ट्रिंग या अंकों की सूची 0
और 1
। आप संख्याओं का उपयोग नहीं कर सकते हैं , जैसे 5
प्रतिनिधित्व करना 101
।
आउटपुट: एक सुसंगत सत्य या गलत मूल्य जो कहता है कि क्या स्ट्रिंग एक लिंडन शब्द है।
विशेष रूप से लिंडन शब्दों के लिए बिल्ट-इन की अनुमति नहीं है।
परीक्षण के मामलों:
6 तक की लंबाई वाले लिंडन शब्द हैं:
0
1
01
001
011
0001
0011
0111
00001
00011
00101
00111
01011
01111
000001
000011
000101
000111
001011
001101
001111
010111
011111
4 तक की लंबाई के गैर-लिंडन शब्द हैं:
00
10
11
000
010
100
101
110
111
0000
0010
0100
0101
0110
1000
1001
1010
1011
1100
1101
1110
1111
लीडरबोर्ड:
x
कि उसके बराबर कोई घुमाव नहीं हैंx
?