LeetCode-387. First Unique Character in a String (Java)
来源:互联网 发布:童装淘宝店铺名字大全 编辑:程序博客网 时间:2024/06/18 08:21
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.
Note: You may assume the string contain only lowercase letters.
---------------------------------------------------------------------------------------------------------------------
题意
找到字符串中第一个不重复出现的字母,返回其在字符串中的位置。
思路
这个我首先想到的是先把它转化为char数组,然后引入一个新的数组A,将原数组的值作为新数组A的索引,
将出现的次数作为新数组A的值。然后循环新数组A,得到出现次数为1的字符,然后得到其最小位置。
代码
public class Solution { public int firstUniqChar(String s) { if(s == "" || s == null || s == " ") return -1;else{char[] array = s.toCharArray(); int [] newArray = new int[27]; Map<Integer,Integer> map = new HashMap(); for(int i=0;i< array.length;i++){ int ddd = array[i] -'a'+1; newArray[ddd]++; map.put(ddd,i); } int minIndex = Integer.MAX_VALUE; for(int i=0;i<newArray.length;i++){ if(newArray[i] ==1){ int index = map.get(i); if(index<minIndex){ minIndex = index; } } } if(minIndex == Integer.MAX_VALUE){ minIndex = -1; } return minIndex;} }}其实我的方法是有点蠢了,还有一种方法,利用s.lastIndexOf(i)进行判断是否重复,然后比较索引大小,相比省去了很多步骤。
方法二:
public class Solution { public int firstUniqChar(String s) { int retIndex = Integer.MAX_VALUE; int pos; for(int i = 97; i < 123; i++){ pos = s.indexOf(i); if(pos != -1 && pos == s.lastIndexOf(i)){ retIndex = pos < retIndex ? pos : retIndex; } } if(retIndex != Integer.MAX_VALUE) return retIndex; return -1; }}
阅读全文
0 0
- LeetCode-387. First Unique Character in a String (Java)
- [Leetcode]First Unique Character in a String
- LeetCode: First Unique Character in a String
- LeetCode-First Unique Character in a String
- leetcode---First Unique Character in a String
- leetcode:First Unique Character in a String
- LeetCode-First Unique Character in a String
- [Leetcode] First Unique Character in a String
- leetcode First Unique Character in a String
- Leetcode First Unique Character in a String
- LEETCODE--First Unique Character in a String
- LeetCode -- First Unique Character in a String
- LeetCode : First Unique Character in a String
- LeetCode First Unique Character in a String
- LeetCode-----First Unique Character in a String
- [LeetCode] First Unique Character in a String(Java)
- LeetCode—387. First Unique Character in a String
- 【leetcode】387. First Unique Character in a String【E】
- MSSQL2008数据库备份与还原
- 26/80. Remove Duplicates from Sorted Array I/II(C++)
- 第一篇 安装CentOS
- JAVA猜数游戏
- Python基础-StringIO和BytesIO
- LeetCode-387. First Unique Character in a String (Java)
- #计算属性-vs-Methods
- 机器学习实战:朴素贝叶斯分类(二)
- 范式哈夫曼编码(Canonical Huffman Code)
- tmpfs详解
- 根据输入的数字查出当前索引
- Ubuntu下配置code::blocks16.01为中文的方法
- UGUI系统学习之三种渲染模式Render Mode
- 【Linux】信号的基本概念