สมมติว่าเรามีสตริงตัวอักษรผสมตัวเลข 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