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

原创 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);
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

经典面试题--字符串系列(二)--找出第一个出现一次的字符

题目:在字符串中找出第一个出现一次的字符串,如输入“”

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

题目:在字符串中找出第一个只出现一次的字符。如输入 “abaccdeff”,则输出b。 思路分析: (1)由于题目与字符出现的次数相关,那么是不是可以统计每个字符在该字符串中出现的次数?要达到这个...

第十七题(找出字符串中第一个只出现一次的字符)

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006 年go

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

转载:http://zhedahht.blog.163.com/blog/static/25411174200722191722430/ 题目:在一个字符串中找到第一个只出现一次的字符。如输入aba...

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

/************************************************************************/ /* 找出字符串中第一个只出现一次的字符 详细描述...

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

1、题目:找出一个字符串中,第一个只出现一次的字符,如“zzzxccddzzsfdg”

华为OJ题目(一):找出字符串中第一个出现一次的字符

#include #include using namespace std; char Findchar(char* pInputString) { if (!pInputString...

只允许遍历一遍字符串,找出字符串中第一个只出现一次的字符

find the first unique character in  a string and you can just traverse this string only one time. if...

(bitmap)给定一个字符串数组,从中找出第一个只出现一次的字母

来源:山三五岳合创:http://www.tnove.com/?p=170 今天针对该问题看有什么可以优化的地方: 首先看看网上一个同学的解法: 利用哈希表,因为字符最多只有255个,可以...

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

#include #include #include char find_once_char(char * str) { int len=strlen(str); //char A[l...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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