劍指offer34 第一個只出現一次的字元(java)
題目
在一個字串(1<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置
思路
建立一個雜湊表,第一次掃描的時候,統計每個字元的出現次數。第二次掃描的時候,如果該字元出現的次數為1,則返回這個字元的位置。
程式碼
public static int FirstNotRepeatingChar(String str){ int l=str.length(); HashMap<Character, Integer> map=new HashMap<>(); for(int i=0;i<l;i++){ if(map.containsKey(str.charAt(i))){ int tem=map.get(str.charAt(i)); map.remove(str.charAt(i)); map.put(str.charAt(i), tem+1); }else{ map.put(str.charAt(i), 1); } } for(int j=0;j<l;j++){ if(map.get(str.charAt(j))==1) return j; } return 0; }
相關推薦
劍指offer34 第一個只出現一次的字元(java)
題目 在一個字串(1<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置 思路 建立一個雜湊表,第一次掃描的時候,統計每個字元的出現次數。第二次掃描的時候,如果該字元出現的次數為1,則返回這個字元的位置。 程式碼 public
劍指Offer - 第一個只出現一次的字符位置
pid item tms cti ++ rank view gpo this https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&tPag
劍指offer-第一個只出現一次的字符
題目 body HA 它的 log turn spa first 數組 題目描述 在一個字符串(1<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置 解題思路 由於char類型一共有256種可能,所以開辟一個數組ha
劍指Offer-第一個只出現一次的字符位置
次數 第一個只出現一次的 nts 劍指offer 出現次數 urn for code 出現的次數 題目描述 在一個字符串(1<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置 思路 思路一: 使用整型數組對出現次數進行統計
劍指offer——第一個只出現一次的字元
這個題在劍指offer裡屬於常規題,主要看程式語言的運用的如何巧。 python 常規操作,用count計數,index輸出位置 class Solution(): def FirstNotRepeatingChar(self,s): if len(s)&
劍指offer-第一個只出現一次的字元
34.第一個只出現一次的字元 題目描述 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 解題思路:可新建一個數組,陣列大小為‘z’+1,陣列中的值為字串中每個字元出現的次數,然
劍指offer 第一個只出現一次的字元 python
題目描述 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 樣例 輸入google 輸出4 想法: 第一回遍歷一次生成字典,第二回遍歷找到值對應的inde
劍指offer:第一個只出現一次的字元
題目:字串中找到第一個只出現一次的字元。 在一個字串中找出第一個只出現一次的字元。如輸入:"abaccdeff",則輸出: b 思路: &n
劍指Offer-第一個只出現一次的字元(Java實現)
題目描述: 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回-1(需要區分大小寫). 思路分析: 方法一: 個人思路 比較粗暴,將字串轉換成字元陣列,按順序遍歷字元陣列。需要兩個指標,指
劍指offer-第一個只出現一次的字元-php
題目 在一個字串(1<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置。如果字串為空,返回-1 題解 用一個數組標記。。。 程式
[劍指offer] 第一個只出現一次的字元[ Python]
題目要求:在一個字串(1<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置解題思路:1.找出字串中共有幾個不同的字元2.找出僅出現過一次的字元,並獲取他們各自的索引3.返回最小的索引# -*- coding:utf-8 -*-
第一個只出現一次字元的位置 牛客網 劍指Offer
第一個只出現一次字元的位置 牛客網 劍指Offer 題目描述 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回
劍指offer之第一個只出現一次的字元
1.題目描述 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 2.問題分析 第一次遍歷,統計每個字串出現的次數; 第二次遍歷,如果有那個字元出現次數為1,
劍指offer:(35)時間效率和空間效率的平衡 :第一個只出現一次的字元
在一個字串(1<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置。 package co.com.jianzhioffer; import java.util.HashMap; import java.util.Map; public
【Java】 劍指offer(50-2) 字元流中第一個只出現一次的字元 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第一個只出現一次的字元是'g'。當從該字元流中讀出前六個字元"go
劍指offer 面試題50:字元流中第一個只出現一次的字元
題目描述:請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第一個只出現一次的字元是"g"。當從該字元流中讀出前六個字元“google"時,第一個只出現一次的字元是"l"。 解法: 使用雜湊表occurance[256] ; 初始化o
《劍指offer》系列 第一個只出現一次的字元(Java)
連結 牛客:第一個只出現一次的字元 題目描述 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 思路 雜湊表遍歷計數 程式碼 import java
劍指offer——(15)第一個只出現一次的字元 && 陣列中重複的數字 && 字元流中第一個不重複的字元
public class Solution { public int FirstNotRepeatingChar(String str) { if(str.length()<=0) return -1; char c[] = str.toC
(劍指offer)第一個只出現一次的字元
時間限制:1秒 空間限制:32768K 熱度指數:200407 本題知識點: 字串 題目描述 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 思路1(Map) im
劍指Offer 字元流中第一個只出現一次的字元
題目: 請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元”go”時,第一個只出現一次的字元是’g’。當從該字元流中讀出前六個字元”google”時,第一個只出現一次的字元是’l’。如果當前字元流沒有存在出現一次的字元,返回#字元。 樣例 輸入:“g