मान लीजिए हमारे पास एक स्ट्रिंग है; हमें यह जांचना होगा कि क्या दिए गए स्ट्रिंग के वर्णों को पैलिंड्रोम बनाने के लिए फेरबदल किया जा सकता है या नहीं।
इसलिए, यदि इनपुट s ="aarcrce" जैसा है, तो आउटपुट ट्रू होगा क्योंकि हम "रेसकार" बनाने के लिए वर्णों को फेरबदल कर सकते हैं जो एक पैलिंड्रोम है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- आकार :=256
- freq:=256 आकार की एक सरणी और 0 से भरें
- i के लिए 0 से लेकर s के आकार तक के लिए, करें
- फ़्रीक सरणी में वर्ण s[i] की आवृत्ति को 1 से बढ़ाएँ
- विषम_गणना :=0
- मैं के लिए 0 से आकार की सीमा में, करते हैं
- अगर freq[i] idd है, तो
- विषम_गणना :=विषम_गणना + 1
- अगर विषम_गणना> 1, तो
- झूठी वापसी
- अगर freq[i] idd है, तो
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
size = 256 def solve(s) : freq = [0] * size for i in range( 0, len(s)) : freq[ord(s[i])] = freq[ord(s[i])] + 1 odd_count = 0 for i in range(0, size) : if freq[i] % 2 == 1 : odd_count = odd_count + 1 if odd_count > 1: return False return True s = "aarcrce" print(solve(s))
इनपुट
"aarcrce"
आउटपुट
True