zoukankan      html  css  js  c++  java
  • [剑指Offer] 34.第一个只出现一次的数

    题目描述

    在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置

    【思路】当一个字符第一次出现的位置和它最后一次出现的位置相同,那么它就是只出现一次的数

     1 class Solution
     2 {
     3 public:
     4     int GetLastIndex(char c,string str)
     5     {
     6         for(int i = str.length() - 1; i >= 0; i --)
     7         {
     8             if(str[i] == c)
     9             {
    10                 return i;
    11             }
    12         }
    13         return -1;
    14     }
    15     int FirstNotRepeatingChar(string str)
    16     {
    17         if(str == "")    return -1;
    18         int id = -1;
    19         bool judge[str.length()];
    20         for(int i = 0; i < str.length(); i ++)
    21             judge[i] = false;
    22         for(int i = 0; i < str.length(); i ++)
    23         {
    24             id = GetLastIndex(str[i],str);
    25             if(id == i && !judge[i])
    26                 return i;
    27             judge[i] = judge[id] = true;
    28         }
    29         return -1;
    30     }
    31 };
  • 相关阅读:
    Kettle学习(2)
    kettle学习(1)
    Quartz在Spring中的使用
    JVM垃圾收集简介
    快速排序

    20190827最新论文
    GNN
    Multimodal Machine Learning
    Wasserstein距离 及两多元高斯分布间的W距离
  • 原文地址:https://www.cnblogs.com/lca1826/p/6513092.html
Copyright © 2011-2022 走看看