2015 去哪兒校招---字串中第一個重複的字元
對於一個字串,請設計一個高效演算法,找到第一次重複出現的字元。
給定一個字串(不一定全為字母)A及它的長度n。請返回第一個重複出現的字元。保證字串中有重複字元,字串的長度小於等於500。
測試樣例:"qywyer23tdd",11
返回:y與劍指offer面試題中第35類似。但是有區別,那個是求第一個指只出現一次的字元,但是這個題目是求第一次重複的字元。
求:第一個指只出現一次的字元。遍歷兩次字串,第一次遍歷是把每個字元都儲存到hashmap中,對應的值是出現的次數。
第二次遍歷則是找出出現第一次的字元。
而本體求第一次重複的字元,應該是隻需遍歷一遍字串,遍歷的過程中判斷當前遇到的字元之前是否出現過,如果出現過則返回,
否則繼續讀下面的字元。
如kfdaaak的第一個出現重複的字元是a而不是k。
/** * 與劍指offer面試題中第35類似。但是有區別,那個是求第一個指只出現一次的字元,但是這個題目是求第一次重複的字元。 * 求:第一個指只出現一次的字元。遍歷兩次字串,第一次遍歷是把每個字元都儲存到hashmap中,對應的值是出現的次數。 * 第二次遍歷則是找出出現第一次的字元。 * 而本體求第一次重複的字元,應該是隻需遍歷一遍字串,遍歷的過程中判斷當前遇到的字元之前是否出現過,如果出現過則返回, * 否則繼續讀下面的字元。 * 如kfdaaak的第一個出現重複的字元是a而不是k。 */ public char findFirstRepeat(String A, int n) { HashMap<Character,Integer> map = new HashMap<Character,Integer> (); char c = 0 ; for(int i=0;i<n;i++){ c = A.charAt(i); if(map.containsKey(c)){ return c; } map.put(c, 1); } return c; }
相關推薦
2015 去哪兒校招---字串中第一個重複的字元
對於一個字串,請設計一個高效演算法,找到第一次重複出現的字元。 給定一個字串(不一定全為字母)A及它的長度n。請返回第一個重複出現的字元。保證字串中有重複字元,字串的長度小於等於500。 測試
【LeetCode 簡單題】85-字串中第一個唯一字元
宣告: 今天是第85道題。給定n,從 1 到 n 選擇一個數字。 你需要猜我選擇了哪個數字。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除 (手動比心ღ( ´・ᴗ・`
字串中第一個重複的字元
import java.util.HashMap; import java.util.Map; public class Main { public Character findFirst
如何找出字串中第一個不重複的字元,Java和Python的分別實現
遇到一個問題,網上有很多教程,在沒看的情況下,自己先寫了幾種方法,僅供參考: Python實現方式:(三種方法,執行效率有差異) # _*_ coding:utf-8 _*_ import time # 傳參方式 str = "=WUKVJPLKKPYBUI=JAOCFCJJIYKGN
劍指Offer-50 字串中第一個只出現一次的字元
題目: 在字串中找出第一個只出現一次的字元。如輸入"abaccdeff",則輸出b。如果字串中不存在只出現一次的字元,返回#字元。 解答: class Solution: def firstNotRepeatingChar(self, s): """
python字串面試題:找出一個字串中第一個字母和最後一個字元是第一次重複,中間沒有重複且最長的子串
1.給出任意一個字串,列印一個最長子串字串及其長度,如果有相同長度的子字串,都要一起打印出來,該子字串滿足以下條件, 第一個字母和最後一個字元是第一次重複 這個子字串的中間字母沒有重複 這個子字串是滿足條件裡面的最長的 如: adsasadmasd 中滿足條件的是dmasd im
查詢字串中第一個不重複的字元
題目要求: 找到字串中第一個不重複的字元,並按原字元顯示,要求可以區分大小寫,預設不區分,true 表示區分, false表示不區分大小寫 示例:輸入Abcad,輸出b; 輸入Abcad true ,輸出A; 輸入Abcad false, 輸出 b
找到字串中第一個不重複的元素
題目:在一個字串中找到第一個沒有重複元素的字元並返回。 例:輸入:"yellow" 返回:“y” 輸入:"tooth" 返回:“h” 輸入:“coco” 返回:“” 按照人類思維來判斷的話,比較該元素與後面的元素,如果相同,再比較
找出給定字串中第一個不重複的字元
給定一串字串,找出其中第一個不重複的字元。 如:輸入”abcddcaeb1~soop”,輸出’e’ 方法一 思路: 定義list<char> store和list<char> storeDel,對輸入字串str進行遍歷,對st
【Java筆試題】輸出字串中第一個不重複的字元
1、題目 在一個字串中找到第一個只出現一次的字元。例如,輸入“abaccdeff”,則輸出b。 2、Java程式碼 public class RetStr { public static
獲取一個字串中第一個只出現過一次的字元及其位置
分析: 首先我們需要統計得到所有字元出現的次數以及其位置,然後比對出現次數為1的字元的位置,最小的即所求 假設字串為: 'stringisastaringb' 解法一: def f
劍指offer--找出字串中第一個只出現一次的字元(題面已經更新)C++
題目描述: 找出字串中第一個只出現一次的字元 輸入描述: 輸入一個非空字串 輸出描述: 輸出第一個只出現一次的字元,如果不存在輸出-1 示例1 輸入 asdfasdfo 輸出 ö 程式碼實現如下: #include<iostream>
java實現--字串中第一個單獨出現的字元
需求: 給定一個由大寫字母組成的字串,返回第一個單獨出現的字母 分析: 1、思路一 建立HashMap集合,遍歷字串,將各個字母及對應的角標存到集合中,再次遍歷字串,看當前字元對應的角標和HashMap集合中的角標是否相同,如果相同就直接返回,如果不
【每日一題】查詢一個字串中第一個只出現兩次的字元
題目:查詢一個字串中第一個只出現兩次的字元。比如:“abcdefabcdefabc”中第一個只出現兩次為‘d’,要求時間複雜度為O(N),空間複雜度為O(1) 解決方法:可以使用雜湊表統計每個字元出現的次數。因為字元只有256種可能,所以我們可以申請一個25
找出字串中第一個不重複的字母
昨天看到一個面試題,說是要在一個字串中找到第一個不重複的字元。 初始思路如下: 掃描一遍字串,生成一個連結串列,越早出現的字元越靠近連結串列頭,最後出現的在連結串列尾。每次從字串中掃描到一個字元後,在連結串列中搜索,找到則其計數加一,否則加入到連結串列尾。最後遍歷這個連結串
找出一個字串中第一個只出現一次的字元
題目:在字串中找出第一個只出現一次的字元。如輸入 “abaccdeff”,則輸出b。 思路分析: (1)由於題目與字元出現的次數相關,那麼是不是可以統計每個字元在該字串中出現的次數?要達到這個目的,我們需要一個數據容器來存放每個字元出現的次數。在這個容器中可
查詢字串中第一個只出現一次的字元
考研的時候學習過雜湊函式,但這只是書本上的知識,簡單的理解,從來沒用過,也不知道怎麼用,直到學了第一堂演算法課,原來hash表可以用陣列模擬,統計數字或字元出現的次數。 程式碼如下: int CHash::getStuNum(int* data, int len, in
【劍指】面試題50 字串中第一個只出現一次的字元
演算法思想 我們可以考慮實現一個簡單的雜湊表,字元是一個長度為8的資料型別,因此共有256中可能。於是我們建立一個長度為256的陣列,每個字母根據其ASCII嗎值作為陣列的下標對應陣列的
C語言面試題:查詢字串中第一個不重複的字元
char findChar(char *s) { char *p,*q; p=q=s; while(*s != '\0') { while(*p++ != '\0')
求字串中不包含重複字元的最長子串的長度
題: 已知一個字串,求這個字串中不包含重複字元的最長子串的長度,如abba返回2,aaaaabc返回3,bbbbbbb返回1. 解題思路: 藉助hashmap來解決,map的鍵key存放字串中出現的