สมมติว่าเรามีสตริง s ที่มีเฉพาะตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่เท่านั้น ไม่ใช่ตัวเลข เราต้องตรวจสอบว่าทั้งตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เรียงตามลำดับเดียวกันหรือไม่ ดังนั้น หากตัวอักษรเกิดขึ้นมากกว่าหนึ่งครั้งในตัวพิมพ์เล็ก การปรากฏของอักขระเดียวกันในตัวพิมพ์ใหญ่จะเหมือนกัน
ดังนั้น หากอินพุตเป็น s ="piPpIePE" ผลลัพธ์จะเป็น True เนื่องจากตัวอักษรพิมพ์เล็กและตัวพิมพ์ใหญ่จะเหมือนกัน และอยู่ในลำดับเดียวกันทั้งตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ด้วย
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ตัวพิมพ์เล็ก :=สตริงว่าง ตัวพิมพ์ใหญ่ :=สตริงว่าง
- สำหรับฉันในช่วง 0 ถึงขนาด s - 1 ทำ
- ถ้า s[i] เป็นอักษรตัวพิมพ์ใหญ่ ดังนั้น
- ตัวพิมพ์ใหญ่ :=ตัวพิมพ์ใหญ่ต่อกัน s[i]
- มิฉะนั้น
- ตัวพิมพ์เล็ก :=ตัวพิมพ์เล็กต่อกัน s[i]
- ถ้า s[i] เป็นอักษรตัวพิมพ์ใหญ่ ดังนั้น
- to_upper :=แปลงตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
- คืนค่า จริง เมื่อ to_upper เหมือนกับ ตัวพิมพ์ใหญ่ มิฉะนั้น เท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(s) : lowercase = "" uppercase = "" for i in range(len(s)) : if ord(s[i]) >= 65 and ord(s[i]) <= 91 : uppercase += s[i] else : lowercase += s[i] to_upper = lowercase.upper() return to_upper == uppercase s = "piPpIePE" print(solve(s))
อินพุต
"piPpIePE"
ผลลัพธ์
True