मान लीजिए हमारे पास एक पोस्टल कोड है, तो हमें यह जांचना होगा कि यह वैध है या नहीं। एक मान्य पोस्टल कोड में निम्नलिखित मानदंड होते हैं
-
यह 100000 से 99999 (दोनों शामिल) की सीमा में एक संख्या होनी चाहिए।
-
इसमें एक से अधिक बारी-बारी से दोहराए जाने वाले अंक जोड़े नहीं होने चाहिए।
इसलिए, यदि इनपुट s ="700035" जैसा है, तो आउटपुट ट्रू होगा क्योंकि यह 100000 से 999999 की सीमा में है और इसमें लगातार अंक भी नहीं हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=आकार का
- नायब:=0
- ठीक है:=सच
- मैं के लिए 0 से n -1 की सीमा में, करो
- ठीक है:=ठीक है और s[i] एक अंक है, तो
- मैं के लिए 0 से n-3 की सीमा में, करते हैं
- nb :=nb + (1 यदि s[i] s[i+2] के समान है अन्यथा 0)
- वापसी (सत्य जब ठीक है और n 6 के समान है और s[0] '0' और nb <2) के समान नहीं है, अन्यथा झूठी वापसी करें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
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