微软算法100题17 字符串中找到第一个只出现一次的字符
2015-10-24 08:44
387 查看
第17 题:
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
思路:要找出只出现一次的字符,很明显需要统计所有字符出现的次数,然后找出次数为一的那一个,统计次数最先想到的是hashTable,但此题有更好的办法,因为每个char其实对应一个唯一的ASCII值,所以可以构造一个包含所有字符ASCII值的int数组,来映射字符与出现次数的关系,同时一个char是8个字节,总共有256个可能,所以该数组的大小应为256
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
思路:要找出只出现一次的字符,很明显需要统计所有字符出现的次数,然后找出次数为一的那一个,统计次数最先想到的是hashTable,但此题有更好的办法,因为每个char其实对应一个唯一的ASCII值,所以可以构造一个包含所有字符ASCII值的int数组,来映射字符与出现次数的关系,同时一个char是8个字节,总共有256个可能,所以该数组的大小应为256
package com.rui.microsoft; public class Test17_CharStatistics { public static void main(String[] args) { String orig = "abaccdeff"; char res = find(orig); System.out.println(res); } public static char find(String s){ char res = 0; int[] in = new int[256]; for(int i = 0; i < s.length(); i++){ char tmp = s.charAt(i); in[tmp]++; } int start = 0; for(; start<in.length; start++){ if(in[start] == 1)break;; } res = (char)start; return res; } }
相关文章推荐
- 3.5 unicodedata--Unicode数据库
- 3.5 unicodedata--Unicode数据库
- 北京,北京
- Git代理设置与访问Github
- 当前工作梳理-系列2/5-策划梳理内容
- LeetCode 081 Search in Rotated Sorted Array II
- 运行Shell脚本的几种方式解析
- 仿微信随手指滑动页面菜单图标文字颜色渐变
- 【基础练习】【归并逆序对】codevs3324 新斯诺克题解
- Android使用应用程序资源(、颜色数组、尺寸、弦、布尔、整型)
- 课堂作业之项目目标
- android 源代码修改了之后编译生成本地的sdk,以方便在eclipse里面直接使用,调用所改动的API接口函数
- Java之判断字符串是否相等
- 日经春秋 20151024
- mod_bw下载地址
- HDU 4788 Hard Disk Drive
- BZOJ 1878 SDOI 2009 HH项链 树状数组 + 脱机处理
- 第19讲----项目2 C语言中的字符对齐
- 【日常学习】【归并逆序对】codevs1688 求逆序对题解
- 天声人語 20151024 地図上の「架空の町」