387. First Unique Character in a String
来源:互联网 发布:java web接口开发 编辑:程序博客网 时间:2024/06/12 22:26
1.题目描述
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode"return 0.s = "loveleetcode",return 2.2.题目分析
这是一道easy难度的算法题,一般像这种字符串问题,最好想到是O(n^2)时间复杂度的暴力破解,可是这种做法对于这道题好像还不行,实现起来不能够通过全部用例。另一种比较容易想到的方法是对于字符串,先O(n)时间去将每一个字符出现次数记录下来,再根据存储的结果,解决题目提出的问题。
3.算法实现
就是借助了一个256大小的int数组,存储每一个可能出现的字符次数。实现如下:
public class Solution {
public int firstUniqChar(String s) {
if(s==null||s.length()==0){ // 边界处理
return -1;
}
int len = s.length();
int[] result = new int[256];// 存储对应字符出现的次数
for(int i=0;i<len;i++){
result[s.charAt(i)-'a']++;
}
for(int i=0;i<len;i++){
if(result[s.charAt(i)-'a']==1){
return i;
}
}
return -1;
}
}
4.总结
这道题,我开始用破解做,但总是不能全部用例通过,中途有想用O(n)时间复杂度算法来做,也就是现在这个算法,一般涉及字符出现次数,第一个出现不重复字符之类的字符串问题,大都可以按照这道题的思路去解题。
- 387. First Unique Character in a String
- 387.First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- LTE学习笔记--PHY--PHY下行物理信道排布(FDD)
- 解决Centos环境下tomcat启动缓慢的问题
- 《机器学习实战》学习
- TCP server的实现,和多线程,多进程服务器
- String 字符串介绍
- 387. First Unique Character in a String
- Error inflating class com.baidu.mapapi.map.MapView
- 继承与组合混用
- UVA253 Cube Painting
- I2C读写和死锁
- Java8新特性--方法引用
- 端口分类
- 财务报表版本在开发报表中的应用
- PAT b1010题解