面试题 35: 第一个只出现一次的字符
2017-06-27 14:54
274 查看
一. 题目
在字符串中找出第一个只出现一次的字符.如输入”abaccdeff”,则输出b
代码请到我的代码库中下载 Point2Offer
二. 代码
有不妥当之处,麻烦告知:D
在字符串中找出第一个只出现一次的字符.如输入”abaccdeff”,则输出b
代码请到我的代码库中下载 Point2Offer
二. 代码
package ween_2; import java.util.LinkedHashMap; /** * 剑指offer: 在字符串中找出第一个只出现一次的字符. * 方法:1.比较,O(n^2);2.hash表(推荐)-linkedHashMap * 测试用例:功能测试(存在只出现一次的字符;不存在;所有字符都只出现一次) * 特殊输入测试(字符串为空) * @author dingding * Date:2017-6-19 9:00 * Declaration: All Rights Reserved! */ public class FindNumsAppearOnce { public static void main(String[] args) { test1(); test2(); test3(); test4(); } private static Character findFirstNumAppearOnce (String string){ if (string==null) { return null; } char[] sChar = string.toCharArray(); LinkedHashMap<Character, Integer> hashChar = new LinkedHashMap<Character,Integer>(); for (char item:sChar){ if (hashChar.containsKey(item)) { hashChar.put(item, hashChar.get(item)+1); }else { hashChar.put(item,1); } } //遍历 for (char key:hashChar.keySet()){ if (hashChar.get(key)==1) { return key; } } return null; } /*================测试用例======================*/ //存在只出现一次 private static void test1() { System.out.println(findFirstNumAppearOnce("abaccdeff")); System.out.println("====================="); } //不存在 private static void test2() { System.out.println(findFirstNumAppearOnce("aaccddff")); System.out.println("====================="); } //每个字符都只出现一次 private static void test3() { System.out.println(findFirstNumAppearOnce("abcdefgh")); System.out.println("====================="); } //字符串为空 private static void test4() { System.out.println(findFirstNumAppearOnce("")); } }
参考文献
Java中HashMap,LinkedHashMap,TreeMap的区别有不妥当之处,麻烦告知:D
相关文章推荐
- 面试题35_第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 剑指Offer----面试题35:第一个只出现一次的字符
- 剑指offer-面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 第一个值出现一次的字符(面试题 35)
- 剑指offer 面试题35 字符串中第一个出现一次的字符
- 剑指Offer面试题35(java版):第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题35:第一个只出现一次的字符
- 【剑指Offer学习】【面试题35:第一个只出现一次的字符】
- 剑指Offer面试题35(java版):第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- (剑指Offer)面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 剑指offer——面试题35:第一个只出现一次的字符(哈希)
- 《剑指Offer》学习笔记--面试题35:第一个只出现一次的字符
- 剑指Offer:面试题35 第一个只出现一次的字符
- 剑指Offer 面试题35:第一个只出现一次的字符 解题报告(华为OJ034-找出字符串中第一个只出现一次的字符)