首页 > 编程语言 >【数据结构和算法】LeetCode,初级算法-14字符串中的第一个唯一字符

【数据结构和算法】LeetCode,初级算法-14字符串中的第一个唯一字符

时间:2022-10-06 22:40:54浏览次数:76  
标签:字符 return 14 map int chars ++ 算法 LeetCode


截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接:​​https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ​提取码:6666

【数据结构和算法】LeetCode,初级算法-14字符串中的第一个唯一字符_字符串中的第一个唯一字符



视频讲解

LeetCode,初级算法-字符串中的第一个唯一字符

B站视频合集:​https://www.bilibili.com/video/BV19v4y1g759​



代码部分

解法一

public int firstUniqChar(String s) {
int count[] = new int[26];
char[] chars = s.toCharArray();
//先统计每个字符出现的次数
for (int i = 0; i < s.length(); i++)
count[chars[i] - 'a']++;
//然后在遍历字符串s中的字符,如果出现次数是1就直接返回
for (int i = 0; i < s.length(); i++)
if (count[chars[i] - 'a'] == 1)
return i;
return -1;
}

解法二

public int firstUniqChar(String s) {
Map<Character, Integer> map = new HashMap();
char[] chars = s.toCharArray();
//先统计每个字符的数量
for (char ch : chars) {
map.put(ch, map.getOrDefault(ch, 0) + 1);
}
//然后在遍历字符串s中的字符,如果出现次数是1就直接返回
for (int i = 0; i < s.length(); i++) {
if (map.get(chars[i]) == 1) {
return i;
}
}
return -1;
}

解法三

public int firstUniqChar(String s) {
for (int i = 0; i < s.length(); i++)
if (s.indexOf(s.charAt(i)) == s.lastIndexOf(s.charAt(i)))
return i;
return -1;
}


标签:字符,return,14,map,int,chars,++,算法,LeetCode
From: https://blog.51cto.com/u_4774266/5734090

相关文章

  • 十大排序算法总结更新
    目录十大排序算法总结一、冒泡排序二、选择排序附录具者类也:排序算法公用(交换和比较)十大排序算法总结一、冒泡排序身世曰:冒泡排序可以誉为程序员跨入算法门槛的第一步......
  • LeetCode(剑指 Offer)- 61. 扑克牌中的顺子
    题目链接:​​点击打开链接​​题目大意:略解题思路相关企业字节跳动AC代码Java//解决方案(1)classSolution{publicbooleanisStraight(int[]nums){Set<In......
  • 多种PID算法用C语言来实现
    原文链接:https://blog.csdn.net/Nirvana_Tai/article/details/105409311,随后整理验证,再补充(一)前言  PID算法在工业应用中随处可见。大学期间,想做各类科创也少不了PI......
  • Portfolio Management 14
    ☆R53:IntroductiontoRiskManagementⅠ、TheRiskManagementProcess:风险管理的流程 风险的定义风险:广义而言,是指可量化的不确定性,描述了导致结果变化和......
  • CF1415D XOR-gun 题解 二分答案/贪心
    题目链接https://codeforces.com/problemset/problem/1415/D题目大意给定一个长为\(n\)的不降序列,每次操作可以任选相邻的两个数,并将这两个数替换为两个数按位异或的......
  • 恶意代码分析实战 恶意代码的网络特征 lab14-1 14-2 14-3 都是http c2,并用到了自定义
       先反编译看看:函数在做base64加密:   验证下想法,果然:后面的功能,就是在下载执行了:   我们分析下细节: 问题1:使用wireshark进行监控网络特征,运......
  • 混音算法记录
    因项目需求实现混音效果,故学习记录了一下。算法调研常见混音方式:加和后再除以混音通道数,防止溢出加和并箝位,如有溢出就设最大值饱和处理,接近最大值时进行扭曲(“软件......
  • 算法学习笔记(数学):数论分块 + 容斥原理 + 莫比乌斯函数
    算法学习笔记(数学):数论分块+容斥原理+莫比乌斯函数这篇文章主要是要讲一道题目(链接在这里)以及梳理一下数论分块,莫比乌斯函数,容斥原理这些知识。先介绍下知识点吧qwq......
  • 人脸对齐之GBDT(ERT)算法解读
    1.概述文章名称:OneMillisecondFaceAlignmentwithanEnsembleofRegressionTrees 文章作者:VahidKazemi,JosephineSullivan 简要介绍:OneMillisecondFaceAlignme......
  • 最短路径问题---Dijkstra算法详解
    0.最短路径问题介绍问题解释:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径1.Dijkstra算法介绍算法特点:迪科斯彻算法使用......