Computer >> Máy Tính >  >> Lập trình >> Python

Ký tự duy nhất đầu tiên trong một chuỗi bằng Python


Giả sử chúng ta có một chuỗi và chúng ta phải tìm ký tự duy nhất đầu tiên trong chuỗi. Vì vậy, nếu chuỗi giống như "people", thì ký tự đầu tiên có lần xuất hiện là "o". Vì vậy, chỉ mục sẽ được trả về, đó là 2 ở đây. Nếu không có ký tự như vậy, hãy trả về -1.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • tạo một bản đồ tần suất
  • đối với mỗi ký tự c trong chuỗi, thực hiện
    • nếu c không có tần số, thì hãy chèn nó vào tần số và đặt giá trị 1
    • nếu không, hãy tăng tần suất đếm
  • Quét bản đồ tần suất, nếu giá trị của một khóa cụ thể là 1, thì trả về khóa đó, nếu không thì trả về -1

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -

class Solution(object):
   def firstUniqChar(self, s):
      """
      :type s: str
      :rtype: int
      """
      frequency = {}
      for i in s:
         if i not in frequency:
            frequency[i] = 1
         else:
            frequency[i] +=1
      for i in range(len(s)):
         if frequency[s[i]] == 1:
            return i
      return -1
ob1 = Solution()
print(ob1.firstUniqChar("people"))
print(ob1.firstUniqChar("abaabba"))

Đầu vào

"people"
"abaabba"

Đầu ra

2
-1