- 设计思想:
(https://uploadfiles.nowcoder.com/images/20210915/9980465_1631716978400/9A541E665EA427F182066C9B23173AE9 "图片标题")
-视频讲解链接B站视频讲解
- 复杂度分析:
- 代码:
c++版本:
class Solution { public: int FirstNotRepeatingChar(string str) { int vis[125] = {0}; // 存储字母出现的次数 //统计出现的次数 for(int i = 0;i < str.size();i ++){ vis[str[i]] ++; } //遍历字符串,若只出现一次则返回下标 for(int i = 0;i < str.size();i ++){ if(vis[str[i]] == 1){ return i; } } return -1; } };
Java版本:
public class Solution { public int FirstNotRepeatingChar(String str) { int[] vis = new int[125]; // 存储字母出现的次数 //统计出现的次数 for(int i = 0;i < str.length();i ++){ vis[str.charAt(i)] ++; } //遍历字符串,若只出现一次则返回下标 for(int i = 0;i < str.length();i ++){ if(vis[str.charAt(i)] == 1){ return i; } } return -1; } }
Python版本:
# -*- coding:utf-8 -*- class Solution: def FirstNotRepeatingChar(self, s): # write code here vis = [0] * 125#存储字母出现的次数 #统计出现的次数 for i in range(len(s)): vis[ord(s[i])] += 1 #遍历字符串,若只出现一次则返回下标 for i in range(len(s)): if(vis[ord(s[i])] == 1): return i return -1
JavaScript版本:
function FirstNotRepeatingChar(str) { // write code here let vis = {} // 存储字母出现的次数 //统计出现的次数 for(let i = 0;i < str.length;i ++){ let key = str[i]; if(!vis[key]){ vis[key] = 0; } vis[key]++; } //遍历字符串,若只出现一次则返回下标 for(let i = 0;i < str.length;i ++){ let key = str[i]; if(vis[key] == 1){ return i; } } return -1; } module.exports = { FirstNotRepeatingChar : FirstNotRepeatingChar };