387. First Unique Character in a String

来源:互联网 发布:软件科技成果鉴定证书 编辑:程序博客网 时间:2024/05/22 16:50

Given a string, find the firstnon-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 thestring contain only lowercase letters.

    翻译:给定一个字符创,找到字符串中第一个不重复的字符,并且返回它的索引位置。题目不难,一开始我用了两重循环,结果通过了。看了一下其他人的解法,又联想到了桶排序,解法很好。利用了字母的26个字母,而且题目给出假定字符串中的字符全部是小写。我写了两种方法,代码如下:

public class Solution {

    public int firstUniqChar(String s) {

       /* List<Character> ls=newArrayList();

          /*   String s="loveleetcode";

                for(int i=0;i<s.length();i++){

                     ls.add(s.charAt(i));

                }

                int result=-1;

                boolean flag=true;

                for(inti=0;i<s.length()&&flag;i++){

                    result=i;

                     flag=false;

                     for(int j=0;j<s.length();j++){

                           if(ls.get(j)==s.charAt(i)&&j!=i){

                                flag=true;

                                result=-1;

                                break;

                           }

                     }

                }

                return result;*/

          int a[]=new int[26];

          int count=-1;

          for(inti=0;i<s.length();i++){

             a[s.charAt(i)-'a']++;

          }

          for(inti=0;i<s.length();i++){

             if(a[s.charAt(i)-'a']==1){

                  count=i;

                  break;

              }

          }

          return count;

    }

}

0 0