zoukankan      html  css  js  c++  java
  • LeetCode 387_ 字符串中的第一个唯一字符

    1. 题目描述

    2. 代码

     1 import collections
     2 
     3 class Solution:
     4     def firstUniqChar(self, s: str) -> int:        
     5         dic = collections.OrderedDict()#有序字典
     6         for i in range(len(s)):#遍历字符串
     7             c = s[i]#当前字符
     8             if c not in dic:#第一次出现,key是字符,value是一个二元组[字符频率,字符索引]
     9                 dic[c] = [1,i]
    10             else:
    11                 dic[c][0] += 1#出现多次,key是字符,value二元组修改,字符频率+1
    12                 # dic[c][1] = -1#字符索设定为-1,表示此字符不符合题目要求
    13         for _,v in dic.items():#dic有序
    14             # print(dic.items())
    15             if v[0] == 1:#字符出现了一次
    16                 return v[1]#返回对应的索引
    17         return -1

    思路: 先定义一个有序字典dic, 然后遍历字符串s, 把字符和该字符出现的 [次数, 索引]存入字典中, 然后遍历字典, 找到次数为1的字符, 返回该字符的索引.

    3. Python中collections模块, 可看LeetCode 350.

  • 相关阅读:
    星空雅梦
    星空雅梦
    Navicat permium快捷键
    Mysql建表+创建索引
    mysql 常见ALTER TABLE操作
    mysql常用的索引种类
    xShell终端中文乱码-解决方法
    git删除本地分支和远程分支
    git版本回退
    log4j2配置文件log4j2.xml详解
  • 原文地址:https://www.cnblogs.com/vvzhang/p/13803138.html
Copyright © 2011-2022 走看看