日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

找出一个字符串中出现次数最多的字_Day34:第一个只出现一次的字符

發(fā)布時間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 找出一个字符串中出现次数最多的字_Day34:第一个只出现一次的字符 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

劍指Offer_編程題——第一個只出現(xiàn)一次的字符

題目描述:

在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現(xiàn)一次的字符,并返回它的位置,如果沒有則返回-1,需要區(qū)分大小寫。(從0開始計數(shù))。

具體要求:

時間限制: C/C++ 1秒,其他語言2秒
空間限制: C/C++32M,其他語言64M

具體思路:

思路一:

這道題剛開始感覺特別簡單,可以用最簡答、最粗暴的方法就可以解決,結(jié)果發(fā)現(xiàn),其實(shí)是錯的,其實(shí),我們可以用python中的字典,只要定義一個字典即可將問題簡單化。我們只需要把這些數(shù)字存在字典里,然后遍歷整個字符串,如果i在count里,則count+1,否則將count置為1.重新遍歷該字符串,這時候我們用到了 Python中的enumerate函數(shù),在判斷count是否為1,如果匹配成功,則返回該下標(biāo)。具體我們用python實(shí)現(xiàn)該思路:

class Solution:def FirstNotRepeatingChar(self, s):if s == "":return -1else:count = {}for i in s:if i in count:count[i] += 1else:count[i] = 1for index, i in enumerate(s):if count[i] == 1:return index

代碼效果圖如圖所示:

思路二

這道題其實(shí)可以用hashcode來解決。利用每個字母的ASCII碼作hash來作為數(shù)組的index。首先用一個58長度的數(shù)組來存儲每個字母出現(xiàn)的次數(shù),為什么是58呢,主要是由于A-Z對應(yīng)的ASCII碼為65-90,a-z對應(yīng)的ASCII碼值為97-122,而每個字母的index=int(word)-65,比如g=103-65=38,而數(shù)組中具體記錄的內(nèi)容是該字母出現(xiàn)的次數(shù),最終遍歷一遍字符串,找出第一個數(shù)組內(nèi)容為1的字母就可以了,時間復(fù)雜度為O(n)。

具體用java實(shí)現(xiàn)該思路:

public class Solution{public int FirstNotRepeatingChar(String str){int[] words = new int[58];for(int i = 0; i < str.length(); i++){words[(int)str.charAt(i) - 65] += 1;}for(int i = 0; i < str.length(); i++){if(words[(int)str.charAt(i) - 65] == 1)return i;}return -1;} }

代碼效果圖如圖所示:

總結(jié)

本道題主要考察字符串中字符出現(xiàn)的次數(shù),剛開始想當(dāng)然了,結(jié)果發(fā)現(xiàn)簡單、粗暴的做法根本行不通,因此,轉(zhuǎn)變了思路,用到了python中的字典,以及java中的hashcode,可以利用ASCII碼作為index,總體來說該題還是挺簡單的。因此,我們在做題的時候,應(yīng)該多次嘗試各種方法,擴(kuò)展自己的思維,寫出優(yōu)質(zhì)的代碼。總之,我們要繼續(xù)加油,爭取早日找到工作,Good Luck!!!

參考文獻(xiàn)

[1]楊二K

[2]zyp7355

總結(jié)

以上是生活随笔為你收集整理的找出一个字符串中出现次数最多的字_Day34:第一个只出现一次的字符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。