题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
 
两次遍历,第一次存放字符计数
第二次查找当前字符是否出现一次
时间复杂度 O(N)  空间复杂度O(N)   用count函数只需要一次遍历,空间复杂度O(1)
 # -*- coding:utf-8 -*-
class Solution:
def FirstNotRepeatingChar(self, s):
# write code here
word_dic={}
for i in range(len(s)):
if s[i] not in word_dic:
word_dic[s[i]]=1
else:
word_dic[s[i]]+=1
for i in range(len(s)):
if word_dic[s[i]]==1:
return i
return -1

2019-12-23 15:25:15

最新文章

  1. Android测试提升效率批处理脚本(二)
  2. SQL Server性能调优系列
  3. css基础不扎实
  4. js单击输入框后弹出提示信息效果
  5. java 小程序--杨辉三角
  6. DNS原理
  7. bootstrap学习笔记之三(组件的使用)
  8. IOS 网络浅析-(八 NSURLSession简介)
  9. 用户 IIS APPPOOL\DefaultAppPool 登录失败的解决方法
  10. 设置button 不可被点击
  11. 自己的缺省(sheng)源
  12. java 下拉框级联及相关(转)
  13. OpenAuth.net
  14. 008、Docker 组件如何协作(2018-12-25 周二)
  15. Python实现机器学习算法:K近邻算法
  16. stack-protector-strong
  17. vscode关闭后未打开上次界面的解决办法
  18. 如何在程序中使用CString
  19. ES6重点--笔记(转)
  20. JAVA学习目录

热门文章

  1. 使用SecureCRT连接虚拟机中Linux系统 和 虚拟机网络配置
  2. Kafka主题体系架构-复制、故障转移和并行处理
  3. Typora的使用-规整笔记 让我以后的笔记内容更加整齐
  4. Points Division(线段树+DP)2019牛客暑期多校训练营(第一场)
  5. mybatis 延迟加载学习
  6. JDBC24homework
  7. UVA10603Fill题解--BFS
  8. wpf之二进制资源
  9. opencv3.3 CUDA 初学实例
  10. JCA-Java加密框架