面试题35:第一个只出现一次的字符
来源:互联网 发布:网络集线器怎么用 编辑:程序博客网 时间:2024/05/29 09:41
package com.abuge;/** * 面试题35:第一个只出现一次的字符 * 题目:在字符串中找出第一个只出现一次的字符,如输入"abaccdeff",则输出'b' */import java.util.HashMap;public class GetFirstOnceChar {public static char getFirstOnce(String str){if(str == null)return '0';HashMap<String, Integer> hashMap = new HashMap<String, Integer>();int len = str.length();//遍历字符串,统计字符串中各个字符出现的次数for(int i = 0; i < len; i++){String tmpStr = "" + str.charAt(i);if(hashMap.containsKey(tmpStr)){int value = hashMap.get(tmpStr);value++;hashMap.remove(tmpStr);hashMap.put(tmpStr, value);}else{hashMap.put(tmpStr, 1);}}//再次遍历字符串,查找出现次数等于1的字符for(int i = 0; i < len; i++){String tmpStr = "" + str.charAt(i);int value = hashMap.get(tmpStr);if(value == 1){System.out.println(str.charAt(i));return str.charAt(i);}}return '0';}//自定义哈希表public static char getFirstOnce_2(String str){if(str == null){return '0';}//只考虑ASCII码,故有256个字符int[] hashTable = new int[256];int len = str.length();//遍历字符串for(int i = 0; i < len; i++){char c = str.charAt(i);hashTable[c]++;}//遍历字符串查找第一个出现一次的字符for(int i = 0; i < len; i++){char c = str.charAt(i);if(hashTable[c] == 1){System.out.println(c);return c;}}return '0';}public static void main(String[] args) {System.out.println("单个字符:");getFirstOnce("a");getFirstOnce_2("a");System.out.println("不存在单个字符:");getFirstOnce_2("bbccddee");System.out.println("均是单个字符串:");getFirstOnce("bacde");getFirstOnce_2("bacde");System.out.println("存在出现一次的字符正常字符串:");getFirstOnce("abaccdeff");getFirstOnce_2("abaccdeff");System.out.println("null:");getFirstOnce(null);getFirstOnce_2(null);}}
0 0
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题 35: 第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题39:第一个只出现一次的字符
- 面试题 <第一个只出现一次的字符>(11)
- 面试题35. 第一个只出现一次的字符
- 剑指offer面试题35第一个只出现一次的字符,用hash
- AS3 面试题35 在一个字符串中找出第一个只出现一次的字符
- 剑指Offer:面试题35 第一个只出现一次的字符
- Linux常用命令,个人记录
- 自己动手写RTP服务器——用RTP协议传输TS流
- 基本算法——排序算法
- python数组的使用
- $GLOBALS['HTTP_RAW_POST_DATA']、$_POST和php://input深入探究三者的区别
- 面试题35:第一个只出现一次的字符
- 如何提升测试质量??
- 在iOS上增加手势锁屏、解锁功能
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- linux下C编程--利用statfs函数查看磁盘空间
- 利用word2vec对关键词进行聚类
- My favourate things about golang
- 服务器基础模块设计-日志系统
- jstorm on yarn命令集合