- 设计思想:
(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 -1JavaScript版本:
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
};
京公网安备 11010502036488号