मान लीजिए हमारे पास एक पोस्टल कोड है हमें जांचना है कि यह वैध है या नहीं। एक वैध पोस्टल कोड में निम्न मानदंड होते हैं:
यह 100000 से 999999 (दोनों समावेशी) की रेंज में एक संख्या होनी चाहिए।
इसमें एक से अधिक अल्टरनेटिंग रिपीटिटिव डिजिट जोड़ी नहीं होनी चाहिए।
तो, यदि इनपुट s = "700035" है, तो आउटपुट True होगा क्योंकि यह 100000 से 999999 की रेंज में है और इसमें कोई लगातार डिजिट्स नहीं हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- n := s का आकार
- nb := 0
- ok := True
- i के लिए 0 से n - 1 तक की रेंज में, करें
- ok := ok और s[i] एक डिजिट है, तो
- i के लिए 0 से n-3 तक की रेंज में, करें
- nb := nb + (1 यदि s[i], s[i+2] के समान है अन्यथा 0)
- (true लौटाएं जब ok true हो और n 6 के समान हो और s[0] '0' के समान न हो और nb < 2), अन्यथा false लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें
def solve(s):
n = len(s)
nb = 0
ok = True
for i in range(n):
ok = ok and s[i].isdigit()
for i in range(n-2):
nb += s[i] == s[i+2]
return ok and n == 6 and s[0] != '0' and nb < 2
s = "700035"
print(solve(s))
इनपुट
"700035"
आउटपुट
True