LeetCode初級算法--字符串02:字符串中的第一個唯一字符
一、引子
這是由LeetCode官方推出的的經(jīng)典面試題目清單~
這個模塊對應(yīng)的是探索的初級算法~旨在幫助入門算法。我們第一遍刷的是leetcode推薦的題目。
二、題目
給定一個字符串,找到它的第一個不重復(fù)的字符,并返回它的索引。如果不存在,則返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
1、思路
首先我們可以想到這道題需要的是一個不重復(fù)的字符,我們順序找到第一個不重復(fù)的字符,把其索引存起來,返回最小的索引也就是第一個不重復(fù)的字符了。
注:使用count方法,會增加時間復(fù)雜度,所以我們用字典記錄各字符的索引。如果重復(fù)出現(xiàn),則索引值需要加上len(s),小于len(s)的那個索引就是我們求的值。
2、編程實現(xiàn)
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
# 用字典記錄各字符的索引。如果重復(fù)出現(xiàn),則索引值需要加上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
分享技術(shù),樂享生活:我們的公眾號計算機視覺這件小事每周推送“AI”系列資訊類文章,歡迎您的關(guān)注!
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!
審核編輯 黃昊宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
人工智能
+關(guān)注
關(guān)注
1819文章
50213瀏覽量
266485 -
機器學習
+關(guān)注
關(guān)注
67文章
8559瀏覽量
137152 -
深度學習
+關(guān)注
關(guān)注
73文章
5602瀏覽量
124567
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
嵌入式春招筆試高頻算法題(附解題思路)
節(jié)點結(jié)構(gòu),再實現(xiàn)功能。
三、高頻算法題3:字符串反轉(zhuǎn)(基礎(chǔ)必考)
字符串操作是嵌入式筆試的基礎(chǔ)考點,字符串反轉(zhuǎn)難度低、代碼簡潔,是必拿分的算法
發(fā)表于 03-18 10:08
求助 LabVIEW 字符串比較
請教大神 ,用一個字符串和多個字符串比較程序應(yīng)該怎么做。
比如:A字符串和B字符串組(B組字符串個數(shù)不定可以是
發(fā)表于 03-02 17:24
打開工程后工程中的字體沒有顯示,如字符串,數(shù)字等控件不能預(yù)覽顯示字體?
打開工程后工程中的字體沒有顯示,如字符串,數(shù)字等控件不能預(yù)覽顯示字體?
發(fā)表于 02-25 17:39
字符串控件與靜態(tài)字符串控件中預(yù)覽字符顯示亂碼,如何修改顯示正常?
字符串控件與靜態(tài)字符串控件中預(yù)覽字符顯示亂碼,如何修改顯示正常?
發(fā)表于 01-20 17:17
分析嵌入式軟件代碼的漏洞-代碼注入
printf的第一個參數(shù)將被編譯為格式字符串。所以,如果str包含任何格式說明符,它們就將被這樣編譯。
例如,如果str包含\'%d\',它會將printf參數(shù)列表中的下
發(fā)表于 12-22 12:53
字符串關(guān)聯(lián)數(shù)字變量如何使用?我們的地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?
字符串關(guān)聯(lián)數(shù)字變量如何使用?我們的地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?
發(fā)表于 12-15 08:24
飛凌嵌入式ElfBoard-標準IO接口之格式化輸出
:要操作的文件描述符。format:表示C 字符串,包含了要被寫入到fd中的格式化數(shù)據(jù)。...:表示附加可變參數(shù),根據(jù)不同的 format 字符串,函數(shù)可能需要
發(fā)表于 11-11 08:43
如何使用 NuMaker 板和 Mbed OS 上的連接字符串連接到 Azure IoT?
使用 NuMaker 板和 Mbed OS 上的連接字符串連接到 Azure IoT
發(fā)表于 09-04 07:46
非對稱密鑰生成和轉(zhuǎn)換規(guī)格詳解
算法是一個基于 EdDSA 算法的數(shù)字簽名算法,密鑰長度為256位,使用 Edwards 曲線來實現(xiàn),不能用于加解密,
發(fā)表于 09-01 07:50
在Python中字符串逆序有幾種方式,代碼是什么
對于一個給定的字符串,逆序輸出,這個任務(wù)對于python來說是一種很簡單的操作,畢竟強大的列表和字符串處理的
SQL 通用數(shù)據(jù)類型
如何與存儲的數(shù)據(jù)進行交互。 下面的表格列出了 SQL 中通用的數(shù)據(jù)類型: 數(shù)據(jù)類型 描述 CHARACTER(n) 字符/字符串。固定長度 n。 VARCHAR(n) 或 CHARACTER VARYING(n)
harmony-utils之StrUtil,字符串工具類
harmony-utils之StrUtil,字符串工具類 harmony-utils 簡介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類
LeetCode初級算法-字符串02:字符串中的第一個唯一字符
評論