首页 > 其他分享 >字符串中的第一个唯一字符

字符串中的第一个唯一字符

时间:2022-11-22 13:34:50浏览次数:38  
标签:字符 第一个 map int 示例 str 字符串

字符串中的第一个唯一字符

一、题目描述

给定一个字符串s,找到它的第一个不重复的字符,并返回的所有。如果不存在,则返回-1。
示例1

输入: s = "leetcode"
输出: 0

示例2

输入: s = "loveleetcode"
输出: 2

示例3

输入: s = "aabb"
输出: -1

三、解题思路

使用map集合记录每个字符出现的频率,最终在遍历字符串,找到第一个在map中的频率为1的。

四、解题方法

使用map集合,记录每个字符,和字符出现的频率。最后在遍历字符串找到出现过一次的字符即可。
代码实现

class Solution {
    public int firstUniqChar(String s) {

        Map<Character,Integer> map = new HashMap<>();
        for(int i = 0; i<s.length();i++){
            char str = s.charAt(i);
            map.put(str,map.getOrDefault(str,0) + 1);
        }

        for(int i = 0; i<s.length();i++){
             char str = s.charAt(i);
            if(map.get(str) == 1){
                return i;
            }
        }

        return -1;

    }
}

方法2(数组存储)
思路和上面哈希表一样,但是使用数组存储索引来表示字符,数组的值来表示出现的频次。

class Solution {
    public int firstUniqChar(String s) {

        int[] arr = new int[26];
        for(int i=0; i< s.length();i++){
            char str = s.charAt(i);
            arr[str - 'a']++;
        }

        for(int i = 0; i< s.length();i++){
            char str = s.charAt(i);
            if(arr[str - 'a'] == 1){
                return i;
            }
        }

        return -1;

    }
}

标签:字符,第一个,map,int,示例,str,字符串
From: https://www.cnblogs.com/zjjtt/p/16914846.html

相关文章

  • 【华为OJ12】字符串反转
    题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:importjava.util.Scanner;publicclassMain{publicstaticStringreverseStr(String......
  • 【链表5】两个链表的第一个公共结点
    题目描述输入两个链表,找出它们的第一个公共结点。如:链表1:1>>>2>>>3>>6>>>7   链表2:4>>>5>>6>>>7最优解:交叉遍历两个链表,寻找公共节点:/*publicclassListNode{in......
  • 【华为OJ23】删除字符串中出现次数最少的字符
    题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。输入描述:字符串只包含......
  • 【字符串4】-第一个只出现一次的字符
    题目描述在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置importjava.util.Map;importjava.util.HashMap;publicc......
  • 【字符串3】-整数中1出现的次数(从1到n整数中1出现的次数)
    求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。......
  • OpenGL(2) ->第一个程序
    文章目录​​一、先看几个定义​​​​二、第一个程序​​​​1、代码​​​​2、简单解析​​​​1、main函数​​​​(1)intmain(intargc,char*argv[])​​​​(2)voidgl......
  • 【C++】使用boost库的split函数分割字符串
    1#include<iostream>2#include<vector>3#include<boost/algorithm/string.hpp>45intmain(constintargc,constchar*argv[])6{7std::vect......
  • python中的字符串的常用方法介绍
    a="alxeLi金角大王"   #创建一个字符串来演示方法的功能结果。一下都使用这个字符串演示。首先要了解的常识性的知识点是:字符串是不可变的序列。所有对字符串的......
  • python中的字符串操作
    #1.索引(下标)print('1.索引')str_data='Python'#[索引(下标)]取索引的格式#正负索引#获取单个数据sub_str=str_data[4]print(sub_str)sub_str=str_d......
  • 字符的统计
    大家好呀,今晚要分享的是C语言中如何写一个代码来计算字符的心得。首先这是题目:首先我们可以分析一下,输入三行文字,然后把文字保存在一个二维字符数组中,可以通过for循环把这三......