मान लीजिए कि हमारे पास एक स्ट्रिंग s है, हमें यह जांचना होगा कि क्या दिए गए स्ट्रिंग के वर्णों को पैलिंड्रोम बनाने के लिए फेरबदल किया जा सकता है या नहीं।
इसलिए, यदि इनपुट s ="raaecrc" जैसा है, तो आउटपुट सही होगा क्योंकि हम इसे "रेसकार" में पुनर्व्यवस्थित कर सकते हैं जो एक पैलिंड्रोम है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- freq:=सभी वर्णों और उनकी आवृत्तियों को s में संग्रहीत करने के लिए एक नक्शा
- विषम_गणना :=0
- प्रत्येक तत्व के लिए मैं freq के सभी मूल्यों की सूची में, करते हैं
- अगर मैं विषम है, तो
- विषम_गणना :=विषम_गणना + 1
- अगर विषम_गणना> 1, तो
- झूठी वापसी
- अगर मैं विषम है, तो
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
from collections import defaultdict def solve(st) : freq = defaultdict(int) for char in st : freq[char] += 1 odd_count = 0 for i in freq.values(): if i % 2 == 1: odd_count = odd_count + 1 if odd_count > 1: return False return True s = "raaecrc" print(solve(s))
इनपुट
"raaecrc"
आउटपुट
True