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

โปรแกรมหาดัชนีของตัวอักษรที่ซ้ำแรกในสตริงที่กำหนดใน Python

สมมติว่ามีสตริง s เราต้องหาดัชนีของตัวอักษรที่ซ้ำแรกในสตริงนั้น หากไม่พบตัวอักษรที่ซ้ำ ให้คืนค่า -1

เช่น ถ้าอินพุตคือ "abcade" ผลลัพธ์จะเป็น 3 เนื่องจาก 'a' ปรากฏอีกครั้งที่ดัชนี 3

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

  • กำหนด map chars
  • สำหรับ i ในช่วง 0 ถึงขนาดของ s ทำ
    • ถ้า s[i] อยู่ใน chars แล้ว คืนค่า i
    • มิฉะนั้น chars[s[i]] := chars[s[i]] + 1
  • คืนค่า -1

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

from collections import defaultdict
class Solution:
    def solve(self, s):
        chars = defaultdict(int)
        for i in range(len(s)):
            if s[i] in chars:
                return i
            else:
                chars[s[i]] += 1
        return -1

ob = Solution()
print(ob.solve("abcade"))

อินพุต

"abcade"

เอาต์พุต

3