स्ट्रिंग '1234'
पर विचार करें। आपको एक फ़ंक्शन की आवश्यकता है जो सभी घूर्णन उत्पन्न करता है: '1234', '3412', '4123', '2341'
।स्ट्रिंग रोटेशन उत्पन्न करने के लिए पाइथोनिक तरीका
assert rotations('123') == set(['123', '231', '312'])
assert rotations('111') == set(['111'])
assert rotations('197') == set(['197', '971', '719'])
ऐसा करने के लिए pythonic तरीका क्या है: मैं एक साधारण परीक्षण सूट बनाया? मैं
def rotations(num):
str_num = str(num)
result = set()
for mid in xrange(len(str_num)):
result.add(
str_num[mid:] + str_num[:mid]
)
return result
यदि यह ** कामकाजी कोड ** है जो आपको लगता है कि सुधार किया जा सकता है, तो [codereview.se] देखें। – jonrsharpe
शायद एक सेट समझ है? '{s [mid:] + s [मध्य] श्रेणी में मध्य (लेन))} –
आपके पास पाइथनिक पर्याप्त है - हालांकि @ निकलासबी की टिप्पणी, जो शायद एक स्वीकार्य उत्तर होने योग्य है , शायद अधिक है (हालांकि पायथन 2 में 'xrange' द्वारा' रेंज' को प्रतिस्थापित करें) –