[剑指Offer] 34.第一个只出现一次的数
2024-10-20 21:05:35
题目描述
在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
【思路】当一个字符第一次出现的位置和它最后一次出现的位置相同,那么它就是只出现一次的数
class Solution
{
public:
int GetLastIndex(char c,string str)
{
for(int i = str.length() - ; i >= ; i --)
{
if(str[i] == c)
{
return i;
}
}
return -;
}
int FirstNotRepeatingChar(string str)
{
if(str == "") return -;
int id = -;
bool judge[str.length()];
for(int i = ; i < str.length(); i ++)
judge[i] = false;
for(int i = ; i < str.length(); i ++)
{
id = GetLastIndex(str[i],str);
if(id == i && !judge[i])
return i;
judge[i] = judge[id] = true;
}
return -;
}
};
最新文章
- Python学习二(生成器和八皇后算法)
- Linq group
- BZOJ 3171 循环格(费用流)
- js ie浏览器下的选中操作
- BZOJ.5305.[HAOI2018]苹果树(组合 计数)
- Java中多态性的实现
- Jmeter性能测试之基础知识(一)
- LeetCode 98 验证二叉搜索树
- 单片机 MCU 中 stack 使用的探讨
- 用交叉验证改善模型的预测表现-着重k重交叉验证
- Python装饰器举例分析
- BootStrap字体图标不显示、下拉菜单不显示
- 由web项目中上传图片所引出的路径问题
- [LintCode] Subarray Sum &; Subarray Sum II
- 用shell 实现对MySQL数据库分页
- 我是怎么从安卓到php再成为前端开发工程师的
- html基础-html简介-第一个网页(1)
- 为通过 ATS 检测 Tomcat 完全 TLS v1.2、完全正向加密及其结果检验
- 实验吧--隐写术--九连环--WriteUp
- Android系统源代码学习步骤