博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《剑指 Offer》——34、第一个只出现一次的字符
阅读量:2343 次
发布时间:2019-05-10

本文共 732 字,大约阅读时间需要 2 分钟。

1. 本题知识点

哈希表

2. 题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)

3. 解题思路

  1. 用 HashMap 建立每个字符与其出现次数的映射
  2. 依次遍历字符串,找到第一个出现次数为 1 的字符,返回其位置

4. 代码

import java.util.HashMap;public class Solution {
public int FirstNotRepeatingChar(String str) {
// 用 HashMap 建立每个字符与其出现次数的映射 HashMap
hashMap = new HashMap<>(); for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i); hashMap.put(c, hashMap.getOrDefault(c, 0) + 1); } // 依次遍历字符串,找到第一个出现次数为 1 的字符,返回其位置 for (int i = 0; i < str.length(); i++) {
if (hashMap.get(str.charAt(i)) == 1) {
return i; } } return -1; }}

转载地址:http://pyjvb.baihongyu.com/

你可能感兴趣的文章
Python3学习笔记01-第一个Python程序
查看>>
Laravel5学生成绩管理系统-01-安装-建表-填充数据
查看>>
Mac OSX下使用apt-get命令
查看>>
Mac下安装PHP的mcrypt扩展的方法(自己总结的)
查看>>
关于html_entity_decode、空格 以及乱码
查看>>
Box2d no gravity
查看>>
mario collision
查看>>
tiled 地图工具
查看>>
小游戏
查看>>
旋转关节绳子
查看>>
射箭box2d
查看>>
cocos2d iphone-wax cocowax
查看>>
angribird level editor
查看>>
love2d 苹果运行
查看>>
GridBagLayout 的注意
查看>>
ajax 跨域iis6 设置
查看>>
4.0版本改动
查看>>
IE8 9 ajax no-transport ajax 问题
查看>>
oracle 启动dbconsole
查看>>
entity-framework 6解决方案中多个项目使用
查看>>