387. First Unique Character in a String
来源:互联网 发布:如何连接linux服务器 编辑:程序博客网 时间:2024/06/07 01:48
题目摘要
给定一个字符串,返回第一个没有重复的字母的下标,如果不存在,返回-1。假设字符串中只含有小写字母。
解法
两个指针slow=0,fast=1;fast先走,并将经过的字母记录下来,直到c[fast] == c[slow],然后slow开始走,直到走到下一个没有记录过两次及以上的字母,然后fast赋为fast+1或slow+1中较大的那个。
public class Solution { public int firstUniqChar(String s) { if (s == null || s.length() == 0) return -1; if (s.length() == 1) return 0; int[] letters = new int[26]; for (int i = 0; i < 26; i++) { letters[i] = 0; } char[] c = s.toCharArray(); int slow = 0, fast = 1; letters[c[slow] - 'a'] = 1; while (fast < c.length) { while (c[fast] != c[slow]) { letters[c[fast++] - 'a']++; if (fast == c.length) return slow; } letters[c[fast] - 'a']++; while (++slow < c.length) { if (letters[c[slow] - 'a'] <= 1) { letters[c[slow] - 'a']++; break; } } if (fast < slow) fast = slow + 1; else fast++; } return slow == c.length ? -1 : slow; }}
注意
*循环之前,现将第一个字母对应的数组位置加一
可问问题
原题
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.
0 0
- 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
- android实现截屏功能代码
- ccp协议
- VBA 获取窗口标题 - 在PPT放映窗口与其他窗口间切换
- 把握每一个今天
- 部署 instance 到 OVS flat network - 每天5分钟玩转 OpenStack(135)
- 387. First Unique Character in a String
- Java中的拦截器、过滤器、监听器
- python chr()和ord()
- hibernate配置文件XML与注解
- 安卓存储对象到本地
- Codeforces Round #372 (Div. 2) D. Complete The Graph 好题+图论+思维+二分
- Decode Ways
- Android TextView显示文字对齐
- 为什么你总是学不好Linux技术?这是我的答案。