387. First Unique Character in a String

    xiaoxiao2021-03-25  149

    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;

        }

    }

    转载请注明原文地址: https://ju.6miu.com/read-11679.html

    最新回复(0)