zoukankan      html  css  js  c++  java
  • 剑指Offer_34_找出字符串中第一个只出现一次的字符

    题目描述

    找出字符串中第一个只出现一次的字符

    详细描述:

    接口说明

    原型:

    bool FindChar(char* pInputString, char* pChar);

    输入参数:

    char* pInputString:字符串

    输出参数(指针指向的内存区域保证有效):

    char* pChar:第一个只出现一次的字符

    如果无此字符 请输出'.'

    输入描述:
    
    输入一串字符,由小写字母组成
    
    
    输出描述:
    
    输出一个字符
    
    
    输入例子:
    asdfasdfo
    
    输出例子:
    o

    解题思路

    扫描字符串,利用HashMap保存字符及出现次数,最后找到第一出现一次的字符。

    实现

    import java.util.*;
    public class Solution {
        public int FirstNotRepeatingChar(String str) {
            if (str == null || str.length() <=0) return -1;
            HashMap<Character, Integer> charNums = new HashMap<Character, Integer>();
            for (char c : str.toCharArray()) {
                if (!charNums.containsKey(c)){
                    charNums.put(c,1);
                }else {
                    charNums.put(c,charNums.get(c)+1);
                }
            }
    
            for (int i = 0; i < str.length(); i++){
                if (charNums.get(str.charAt(i)) == 1){
                    return i;
                }
            }
            
            return -1;
        }
    }
    
  • 相关阅读:
    对list集合中的对象进行排序(转载)
    关键字的作用
    CocoaPods的 安装 /卸载/升级
    block基本使用和底层
    程序启动 - 类调用的方法
    成员变量修饰词的作用
    宏(define)与常量(const)
    iOS
    监听网络状态
    nil、Nil、NULL与NSNull的区别及应用
  • 原文地址:https://www.cnblogs.com/ggmfengyangdi/p/5792139.html
Copyright © 2011-2022 走看看