中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java怎么獲取字符串中只出現一次的字符

發布時間:2020-06-21 22:49:50 來源:億速云 閱讀:413 作者:鴿子 欄目:編程語言

問題:

在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,并返回它的位置, 如果沒有則返回 -1(需要區分大小寫)

解決思路:

題目要求很明確,就是遍歷字符串,并且給字符計數,計數之后,找到計數為1的字符即可。很明顯這需要用到hashmap,key就是字符串中的各個字符,而value就是這個字符在字符串中出現的次數。

代碼如下:

import java.util.LinkedHashMap;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        int len = str.length();
        LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < len; i++) {
            char c = str.charAt(i);
            Integer val = map.get(c);
            map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue);
        }
        Character resultKey = null;
        for (Character c : map.keySet()){
            if (map.get(c) == 1){
                resultKey = c;
                break;
            }
        }
        for (int i = 0 ;i < len; i++){
            if (str.charAt(i) == resultKey){
                return i;
            }
        }        
       return -1;
    }
}

以上就是java實現查找第一個只出現一次的字符的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保定市| 班戈县| 镇江市| 阿鲁科尔沁旗| 亚东县| 富川| 镇坪县| 陇川县| 连州市| 上杭县| 当雄县| 文昌市| 广灵县| 扶沟县| 定襄县| 广东省| 应用必备| 榆林市| 全南县| 白水县| 樟树市| 合川市| 麦盖提县| 临江市| 荔波县| 屏东市| 玉屏| 井陉县| 贺兰县| 通道| 开远市| 西昌市| 九寨沟县| 乐至县| 沾化县| 微山县| 巴林左旗| 陈巴尔虎旗| 武强县| 左贡县| 云霄县|