Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าสามารถจัดเรียงสตริงใหม่เพื่อสร้าง palindrome พิเศษใน Python . ได้หรือไม่


สมมติว่าเรามีสตริง เราต้องตรวจสอบว่าอักขระของสตริงที่กำหนดสามารถสับเปลี่ยนเพื่อสร้าง palindrome ได้หรือไม่

ดังนั้น หากอินพุตเป็น s ="aarcrce" เอาต์พุตจะเป็น True เนื่องจากเราสามารถสับเปลี่ยนอักขระเพื่อสร้าง "racecar" ซึ่งเป็นพาลินโดรมได้

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ขนาด :=256
  • freq :=อาร์เรย์ขนาด 256 และเติม 0
  • สำหรับฉันในช่วง 0 ถึงขนาดของ s ทำ
    • ความถี่ที่เพิ่มขึ้นของอักขระ s[i] ในอาร์เรย์ความถี่ 1
  • odd_count :=0
  • สำหรับฉันในช่วง 0 ถึงขนาด ทำ
    • ถ้า freq[i] เป็น idd แล้ว
      • odd_count :=odd_count + 1
    • ถ้า odd_count> 1 แล้ว
      • คืนค่าเท็จ
  • คืนค่า True

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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