一、题目
函数原型
int firstUniqChar(char* s)
二、算法设置一个大小为26的字符数组,位置0 - 25 分别对应字符 a - z 。遍历两次字符串,第一次记录下每个字符出现的次数,第二次检查哪个字符最先遍历到且出现次数为1,返回该字符即可。
三、代码
cppint firstUniqChar(char* s) { int nums[26]={0}; memset(nums,0,sizeof(nums)); int sz=strlen(s); for(int i=0;i<sz;i++) { nums[s[i]-'a']++; } for(int i=0;i<sz;i++) { if(nums[s[i]-'a']==1) return i; } return -1; }
leetcode:387. 字符串中的第一个唯一字符
南林yan2023-11-05 8:28
相关推荐
企业数字化笔记8 小时前
视频人体姿态怎么做三维可视化?2D关键点、深度局限与技术选型?abc!8 小时前
(数组)581. 最短无序连续子数组小郎君65811 小时前
MPTT树复选框的半选状态:一棵百万节点树从递归到计数器,再到区间覆盖酌沧11 小时前
MemT让记忆成为模型内生能力hold?fish:palm11 小时前
40 二叉树的直径Shimeri12 小时前
越卷越像:我用遗传算法做了个"内卷"实验Evand J12 小时前
【PMSM例程1】永磁同步电机(PMSM)转速与转子电角度观测算法|基于扩展卡尔曼滤波(EKF)的传感器状态估计与误差。附下载链接guo_wen_qiang12 小时前
二叉树的层序遍历-使用双端队列Deque爱读书的小胖12 小时前
LeetCode 55 跳跃游戏 C 语言解题分析CCblandy12 小时前
前缀缓存命中率不靠引擎靠排列:本机仿真 3 轮,易变字段放开头 98.0%→0.0%