मान लीजिए कि हमारे पास एक स्ट्रिंग और एक पूर्णांक k है, हमें स्ट्रिंग की शुरुआत से गिनने वाले प्रत्येक 2k वर्णों के लिए पहले k वर्णों को उलटना होगा। यदि कोई पर्याप्त वर्ण नहीं बचा है, तो उन सभी को उलट दें। यदि 2k से कम वर्ण हैं लेकिन k वर्णों से अधिक या उसके बराबर हैं, तो पहले k वर्णों को उलट दें और दूसरे को मूल के रूप में छोड़ दें।
इसलिए, यदि इनपुट "abcdefgh" और k =3 जैसा है, तो आउटपुट "cbadefhg" होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
l :=s के पात्रों की सूची बनाएं
-
मैं :=k-1
-
जबकि मैं <आकार का l + k −
-
a :=l[सूचकांक 0 से i-k+1 तक]
-
b :=l[इंडेक्स i-k+1 से i+1 तक]
-
c :=l [इंडेक्स i+1 से अंत तक]
-
l :=a concatenate b[index 0 to end] concatenate c
-
मैं :=मैं + 2*k
-
-
प्रत्येक वर्ण को l
. में संयोजित करके स्ट्रिंग लौटाएं
उदाहरण
आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution: def reverseStr(self, s, k): l = list(s) i = k-1 while i < len(l)+k: a = l[:i-k+1] b = l[i-k+1:i+1] c = l[i+1:] l = a + b[::-1] + c i += 2*k return ''.join(l) ob = Solution() print(ob.reverseStr("abcdefg", 3))
इनपुट
"abcdefg", 3
आउटपुट
cbadefg