【剑指offer】面试题50(1):第一个只出现一次的字符
来源:互联网 发布:手机淘宝同城在哪里找 编辑:程序博客网 时间:2024/06/11 13:22
题目
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
思路
哈希表
代码
/** * 题目: * 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 * * 思路: * 哈希表 * * @author peige */public class _50_01_FirstNotRepeatingChar { public static int FirstNotRepeatingChar(String str) { if(str == null || str.length() == 0) return -1; int[] ch = new int[256]; for(int i = 0; i < str.length(); ++i) { ++ch[str.charAt(i)]; } for(int i = 0; i < str.length(); ++i) { if(ch[str.charAt(i)] == 1) { return i; } } return -1; }}
测试
public class _50_01_Test { public static void main(String[] args) { test1(); test2(); test3(); } private static void test1() { int index; index = _50_01_FirstNotRepeatingChar.FirstNotRepeatingChar("aabcdcb"); MyTest.equal(index, 4); index = _50_01_FirstNotRepeatingChar.FirstNotRepeatingChar("abcdefg"); MyTest.equal(index, 0); } /** * 边界测试 */ private static void test2() { int index; index = _50_01_FirstNotRepeatingChar.FirstNotRepeatingChar("a"); MyTest.equal(index, 0); index = _50_01_FirstNotRepeatingChar.FirstNotRepeatingChar("aabbb"); MyTest.equal(index, -1); } /** * 极端测试 */ private static void test3() { int index; index = _50_01_FirstNotRepeatingChar.FirstNotRepeatingChar(""); MyTest.equal(index, -1); index = _50_01_FirstNotRepeatingChar.FirstNotRepeatingChar(null); MyTest.equal(index, -1); }}
阅读全文
0 0
- 【剑指offer】面试题50(1):第一个只出现一次的字符
- 【剑指offer】面试题 50:第一个只出现一次的字符
- 剑指Offer面试题35(java版):第一个只出现一次的字符
- 剑指Offer面试题35(java版):第一个只出现一次的字符
- 【剑指offer】面试题50(2):字符流中第一个只出现一次的字符
- 剑指offer面试题35第一个只出现一次的字符,用hash
- 剑指Offer:面试题35 第一个只出现一次的字符
- 剑指offer 面试题35—第一个只出现一次的字符
- 《剑指Offer》学习笔记--面试题35:第一个只出现一次的字符
- 【剑指Offer学习】【面试题35:第一个只出现一次的字符】
- 《剑指Offer》面试题:找到第一个只出现一次的字符
- [剑指Offer]面试题35:第一个只出现一次的字符
- 剑指 offer代码解析——面试题35第一个只出现一次的字符
- 剑指offer-面试题35:第一个只出现一次的字符
- 剑指offer面试题 第一个只出现一次的字符
- 剑指Offer----面试题35:第一个只出现一次的字符
- 剑指Offer面试题35:第一个只出现一次的字符
- 剑指offer--面试题35:第一个只出现一次的字符位置
- Python 包
- Jquery操作select
- Chapter 3 介绍几种“坐标空间”
- 计算机网络--网络层IP地址
- 数组用for遍历,for(int score:scores)
- 【剑指offer】面试题50(1):第一个只出现一次的字符
- hadoop集群搭建准备环境
- C++之确定你的public继承塑模出is-a关系(32)---《Effective C++》
- BZOJ 3309 莫比乌斯反演
- 分别使用js和php判断是哪个app打开网页
- HDU 1394 Minimum Inversion Number(线段树求逆序数)
- 算法:C++实现动态规划中的几个典型问题
- Android7.0系统启动
- 基于OpenCV给二值图像中不同邻域做标记