LeetCode初級算法--字符串02:字符串中的第一個唯一字符
一、引子
這是由LeetCode官方推出的的經典面試題目清單~
這個模塊對應的是探索的初級算法~旨在幫助入門算法。我們第一遍刷的是leetcode推薦的題目。
二、題目
給定一個字符串,找到它的第一個不重復的字符,并返回它的索引。如果不存在,則返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
1、思路
首先我們可以想到這道題需要的是一個不重復的字符,我們順序找到第一個不重復的字符,把其索引存起來,返回最小的索引也就是第一個不重復的字符了。
注:使用count方法,會增加時間復雜度,所以我們用字典記錄各字符的索引。如果重復出現,則索引值需要加上len(s),小于len(s)的那個索引就是我們求的值。
2、編程實現
class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
#算法超時
# res = []
# for i in s:
# if s.count(i) == 1:
# res.append(s.index(i))
# if len(res):
# return min(res)
# return -1
# 用字典記錄各字符的索引。如果重復出現,則索引值需要加上len(s)
d = {}
for i in range(len(s)):
if s[i] not in d:
d[s[i]] = i
else:
d[s[i]] += len(s)
if len(s) and min(d.values()) < len(s) :
return min(d.values())
return -1
分享技術,樂享生活:我們的公眾號計算機視覺這件小事每周推送“AI”系列資訊類文章,歡迎您的關注!
本文由博客一文多發平臺 OpenWrite 發布!
審核編輯 黃昊宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
人工智能
+關注
關注
1792文章
47377瀏覽量
238882 -
機器學習
+關注
關注
66文章
8423瀏覽量
132752 -
深度學習
+關注
關注
73文章
5506瀏覽量
121260
發布評論請先 登錄
相關推薦
base64字符串轉換為二進制文件
Base64是一種編碼方法,用于將二進制數據轉換為ASCII字符串。這種編碼通常用于在不支持二進制數據的系統中傳輸數據,例如電子郵件或網頁。將Base64字符串轉換為二進制文件的過程相
鴻蒙原生應用元服務開發-倉頡基礎數據類型字符串類型
單引號(‘’\')。字面量的內容從開頭的三個引號換行后的第一行開始,到結尾的三個引號之前為止,之間的內容可以是任意數量的(除單獨出現的 \\\\ 之外的)任意字符。不同于單行
發表于 09-18 10:43
labview字符串數組轉化為數值數組
常重要的。LabVIEW支持多種數據類型,包括數值、字符串、數組、簇等。在本例中,我們將關注字符串數組和數值數組。 字符串數組 :由一系列
labview字符串如何轉換為16進制字符串
在LabVIEW中,將字符串轉換為16進制字符串是一個常見的需求,尤其是在處理數據通信和硬件接口時。LabVIEW提供了多種方法來實現這
labview中如何實現字符串選擇輸出
在LabVIEW中實現字符串選擇輸出是一項常見的任務,它涉及到字符串處理、條件判斷和用戶界面設計等多個方面。由于LabVIEW是一種圖形化編
labview中常用的字符串函數有哪些?
) : 功能:該函數用于返回字符串所包含的字符個數。 應用場景:常用于需要計算字符串長度的場景,如文件命名、數據處理等。 連接字符串(String Concatenate) : 功能:
labview字符串的四種表示各有什么特點
。在LabVIEW中,字符串是一種基本的數據類型,用于表示文本信息。字符串在LabVIEW中有多種表示方式,每種方式都有其特定的應用場景和特點。以下是對LabVIEW
銳評Ruby 3.4.0 默認啟用字符串字面量凍結功能
據悉,Ruby自2.3版起引入了“凍結”機制,通過使用frozen_string_literal: true魔法注釋,可令文件內所有字符串字面量默認為凍結狀態,防止開發過程中無意修改字符串,提高代碼穩定性與性能,降低內存占用。
STM32 USB的字符串描述符不能顯示是哪里的問題?
最近用STM32做了一個USB 的HID類設備,設備描述符中有指定廠商字符串索引、產品字符串索引、序列號索引。在獲取
發表于 04-30 08:13
UCGUI edit輸入框內字符串如何單獨用光標選中某字符進行修改?
光標只能單獨選中虛擬按鍵進行操作,可以清除edit輸入框內全部數據,可以退格刪除最后一位字符。但不能光標單獨選中某一字符進行修改。
想要達到的效果就是:可以單獨選中edit輸入框內某一字符
發表于 04-23 06:14
評論