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

原创 2015年07月07日 17:42:14
package java_study.JianZhiOffer;

import org.junit.Test;
import scala.Char;

import java.util.HashMap;

/**
 * Created by ethan on 2015/7/7.
 * 剑指offer中No36题
 */
public class No36第一个只出现一次的字符 {

    public char findFirstOnceCharacter(String str){
        HashMap<Character, Integer> hashMap = new HashMap<Character, Integer>();
        for (int i=0; i<str.length(); i++){
            char ch = str.charAt(i);
            if (hashMap.containsKey(ch)){
                hashMap.put(ch, hashMap.get(ch)+1);
            }else
                hashMap.put(ch, 1);
        }
        for (int i=0; i<str.length(); i++){
            char ch = str.charAt(i);
            if (hashMap.get(ch)!=null && hashMap.get(ch)==1)
                return ch;
        }
        return '\0';
    }

    // hashMap是一个比较复杂的数据结构,可以直接使用比较轻量级的数据结构:数组;
    // 字符的统计都都可以考虑使用这种轻量级的数组实现map
    public char findFirstOnceCharacter_1(String str){
        int[] hashtable = new int[256];
        for (int i=0; i<str.length(); i++){
            hashtable[str.charAt(i)] += 1;
        }
        for (int i=0; i<str.length(); i++){
            char ch = str.charAt(i);
            if (hashtable[ch]==1)
                return ch;
        }
        return '\0';
    }

    @Test
    public void test(){
        System.out.println(findFirstOnceCharacter("abaccfdwedass"));
        System.out.println(findFirstOnceCharacter_1("abaccfdwedass"));
        System.out.println((char)97);
    }
}

【华为OJ】找出字符串中第一个只出现一次的字符

找出字符串中第一个只出现一次的字符 详细描述: 接口说明 原型: bool FindChar(char* pInputString, char* pChar); 输入参数: char* pInputS...
  • haoxiaodao
  • haoxiaodao
  • 2015年04月20日 20:22
  • 711

剑指offer----第一个只出现一次的字符位置----java实现

在一个字符串(1字符串长度,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始。 如果从头开始让每一个字符都与其后面的字符相比较,当第一个出现一次的字符,就结束...
  • snow_7
  • snow_7
  • 2016年07月07日 17:32
  • 960

第一个只出现一次的字符 java实现

题目描述 在一个字符串(1 分析:由于题目与字符出现的次数相关,我们是不是可以统计每个字符在该字符串中出现的次数,要打到这么目的,我们需要一个数据容器来存储每个字符在字符串中出现的次数,这...
  • qq_23217629
  • qq_23217629
  • 2016年10月09日 13:18
  • 1404

在字符串(字母)中找出第一个只出现一次的字母

第一个只出现一次的字符:在字符串中找出第一个只出现一次的字母。函数支持汉字查询,但不知道这个函数在实际应用有什么用。 在编程中发现直接 这样 arr[字符串]是设定对象属性,不是访问数组。var fi...
  • 6rl
  • 6rl
  • 2016年11月01日 15:42
  • 586

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

在字符串中查找第一个只出现一次的字符。例如输入字符串"abaccdef",输出b,     分析:(1)创建一个数组,并初始化数组,                       (2)遍历字符串,...
  • xulu_258
  • xulu_258
  • 2015年05月26日 20:32
  • 953

在一个字符串中找到第一个只出现一次的字符。如输入:abcdab,则输出:c。

题目:在一个字符串中找到第一个只出现一次的字符。如输入:abcdab,则输出:c。 分析:看到这道题时,有两种思路: (1)最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时...
  • yanxiaolx
  • yanxiaolx
  • 2016年06月02日 22:47
  • 1682

【c语言】第一个只出现一次的字符题目:在字符串中找出第一个只出现一次的字符

// 第一个只出现一次的字符题目:在字符串中找出第一个只出现一次的字符。 // 如输入“abaccdeff”,则输出’b’。 #include #include char find...
  • zhaoyaqian552
  • zhaoyaqian552
  • 2015年07月06日 20:45
  • 1540

【C语言】找出一个字符串中第一个只出现一次的字符

题目描述:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。 方法一:     简单粗暴的遍历完成,只适用于字符串较...
  • sofia_m
  • sofia_m
  • 2017年11月12日 17:58
  • 235

剑指offer-第一个只出现一次的字符-php

题目 在一个字符串(1
  • acingdreamer
  • acingdreamer
  • 2017年04月10日 19:44
  • 305

15. Google面试题:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析: 一般方法是使用每个字符间都比较一次,算法复杂度为o(n^2) 可以使用空间换时间的方法,字符...
  • hhh3h
  • hhh3h
  • 2014年03月09日 13:35
  • 1064
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:找出字符串的第一个只出现一次的字符
举报原因:
原因补充:

(最多只允许输入30个字)