समस्या विवरण
एक संख्या n दी गई है, हमें निम्नलिखित नियमों से उत्पन्न सीक्वेंस का nth मान ज्ञात करना है:
- पहला टर्म: "xxy"
- नियम (चक्रीय क्रम में):
- स्ट्रिंग को डबल करें (खुद के साथ कन्कैटनेट करें)
- स्ट्रिंग को रिवर्स करें
- सभी 'x' को 'y' और 'y' को 'x' में बदलें
- इन चरणों को दोहराएं
उदाहरण
सीक्वेंस: xxy → xxyxxy → yxxyxx → xyyxyy → xyyxyyxyyxyy → ...
इनपुट: n = 5
आउटपुट: "yyxyyxyyxyyx"
एल्गोरिदम
ret = "xxy"से शुरू करेंi = 0सेn-1तक:- यदि
i % 3 == 0:ret = ret + ret(डबल करें) - यदि
i % 3 == 1:ret = ret[::-1](रिवर्स करें) - यदि
i % 3 == 2: सभी 'x'↔'y' स्वैप करें
- यदि
retवापस करें
पायथन कार्यान्वयन
class Solution:
def solve(self, s):
i = 0
ret = "xxy"
while i < s:
if i % 3 == 0:
ret += ret
elif i % 3 == 1:
ret = ret[::-1]
else:
new_string = ""
for c in ret:
new_string += "y" if c == "x" else "x"
ret = new_string
i += 1
return ret
ob = Solution()
print(ob.solve(5))
इनपुट
5
आउटपुट
yyxyyxyyxyyx