Leetcode 387. First Unique Character in a String JAVA语言

简介:
1
2
3
4
5
6
7
8
9
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.

题意:找到字符串中没有重复的字符,并且这个字符是第一个出现的。题目已经给出条件:输入的字符全部是小写,所以大小写区分这些问题就不用考虑了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public  class  Solution {
     public  int  firstUniqChar(String s) {
         /////超时了哈哈哈哈哈哈
         // int count,i;
         // for(i=0;i<s.length();i++){
         //     count=0;
         //     for(int j=0;j<s.length();j++){
         //         if(s.charAt(i)==s.charAt(j)){
         //             count++;
         //         }
         //     }
         //     if(count==1)
         //         return i;
         //     else 
         //         continue;
         // }
         // return -1;
         int [] hash= new  int [ 26 ];
         for ( int  i= 0 ;i<s.length();i++){
             hash[s.charAt(i)- 'a' ]++;
         }
         for ( int  i= 0 ;i<s.length();i++){
             if (hash[s.charAt(i)- 'a' ]== 1 ){
                 return  i;
             }
         }
         return  - 1 ;
     }
}

PS:额。。。。。。第一次暴力两层for循环,果然超时。

然后又是统计词频。。。。。。。。。。。。。。。。然后返回去遍历字符串找到第一个次数为1的即可。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。



本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1890911

相关文章
|
7天前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`&quot;123abc&quot;`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
2天前
|
安全 Java
Java基础之StringBuffer
Java中的`StringBuffer`是线程安全的可变字符串,适用于多线程环境,其方法同步导致较慢。`StringBuilder`在Java 5引入,非线程安全但更快,适合单线程操作。两者均提供append、insert、delete等方法。在不需要线程安全时,选择`StringBuilder`以提升效率。
8 1
|
6天前
|
Java 数据处理 Apache
探讨Java中判断String类型为空和null的方法
探讨Java中判断String类型为空和null的方法
11 1
|
9天前
|
Java API 索引
java中String类常用API
java中String类常用API
|
13天前
|
算法 Java
[Java·算法·简单] LeetCode 283. 移动零
[Java·算法·简单] LeetCode 283. 移动零
17 2
|
3天前
|
存储 Java API
Java基础之String类
Java的String类是引用类型,用于创建和操作字符串。字符串对象在`java.lang`包中,不可变。创建方式包括字面量和`new`关键字。字符串池存储字符串常量,避免重复。比较字符串用`equals()`(区分大小写)和`equalsIgnoreCase()`(不区分大小写)。`length()`返回长度,`concat()`或`+`拼接,`substring()`截取,`indexOf()`和`lastIndexOf()`查找,`replace()`替换,`split()`分割。这些是常用的字符串API。
7 0
|
3天前
|
Java
Java基础之String类
Java基础之String类
8 0
|
6天前
|
存储 缓存 安全
java源码之String详解
java源码之String详解
11 0
|
17天前
Failed to bind properties under ‘logging.level‘ to java.util.Map java.lang.String, java.lang.String
Failed to bind properties under ‘logging.level‘ to java.util.Map java.lang.String, java.lang.String
8 0
|
18天前
|
安全 Java 数据安全/隐私保护
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(二)
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(二)
20 0