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