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

โปรแกรมแทนที่ตัวเลขทั้งหมดด้วยอักขระโดยใช้ Python


สมมติว่าเรามีสตริงตัวอักษรผสมตัวเลข s ที่มีตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กในตำแหน่งคู่และตัวเลขในตำแหน่งคี่ พิจารณาการเปลี่ยนแปลงการดำเนินการ (c, x) โดยที่ c คืออักขระใดๆ และ x คือตัวเลข (หลัก) ซึ่งจะพบอักขระที่ xth หลัง c ตัวอย่างเช่น shift('p', 5) ='u' และ shift('a', 0) ='a' ตอนนี้สำหรับทุกดัชนีคี่ i เราต้องการแทนที่ตัวเลข s[i] ด้วย shift(s[i-1], s[i]) เราต้องหา s หลังจากแทนที่ตัวเลขทั้งหมดแล้ว

ดังนั้น หากอินพุตเป็นเหมือน s ="a2b1d4f3h2" ผลลัพธ์จะเป็น "acbcdhfihj" เพราะ

  • shift('a', 2) ='c'

  • shift('b', 1) ='c'

  • shift('d', 4) ='h'

  • shift('f', 3) ='i'

  • shift('h', 2) ='j'

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

  • res:=สตริงว่าง

  • สำหรับฉันในช่วง 0 ถึงขนาด s ทำ

    • ถ้า s[i] เป็นตัวเลข ดังนั้น

      • res :=res เชื่อมอักขระจาก (ASCII s[i] + ASCII ของ s[i-1])

    • มิฉะนั้น

      • res :=res concatenate s[i]

  • ผลตอบแทน

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

ตัวอย่าง

def solve(s):
   res=""
   for i in range(len(s)):
      if s[i].isdigit():
         res+= chr(int(s[i])+ord(s[i-1]))
      else:
         res+=s[i]
   return res
s = "a2b1d4f3h2"
print(solve(s))

อินพุต

"a2b1d4f3h2"

ผลลัพธ์

acbcdhfihj