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

โปรแกรมแทนที่ตัวเลขด้วยตัวอักษรในสตริงด้วย Python


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

เช่น s = "a2b1d4f3h2" ผลลัพธ์คือ "acbcdhfihj" เพราะ shift('a',2)='c', shift('b',1)='c', shift('d',4)='h', shift('f',3)='i', shift('h',2)='j'

ขั้นตอนการแก้ปัญหา

  • res = ""
  • วนลูป i จาก 0 ถึง len(s)-1:
    • ถ้า s[i] เป็นตัวเลข: res += chr(int(s[i]) + ord(s[i-1]))
    • มิฉะนั้น: res += s[i]
  • คืนค่า res

ตัวอย่างโค้ด

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