题目描述

在一个字符串(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 -;
}
};

最新文章

  1. Python学习二(生成器和八皇后算法)
  2. Linq group
  3. BZOJ 3171 循环格(费用流)
  4. js ie浏览器下的选中操作
  5. BZOJ.5305.[HAOI2018]苹果树(组合 计数)
  6. Java中多态性的实现
  7. Jmeter性能测试之基础知识(一)
  8. LeetCode 98 验证二叉搜索树
  9. 单片机 MCU 中 stack 使用的探讨
  10. 用交叉验证改善模型的预测表现-着重k重交叉验证
  11. Python装饰器举例分析
  12. BootStrap字体图标不显示、下拉菜单不显示
  13. 由web项目中上传图片所引出的路径问题
  14. [LintCode] Subarray Sum &amp; Subarray Sum II
  15. 用shell 实现对MySQL数据库分页
  16. 我是怎么从安卓到php再成为前端开发工程师的
  17. html基础-html简介-第一个网页(1)
  18. 为通过 ATS 检测 Tomcat 完全 TLS v1.2、完全正向加密及其结果检验
  19. 实验吧--隐写术--九连环--WriteUp
  20. Android系统源代码学习步骤

热门文章

  1. MySQL 修改主键
  2. Linux下安装google拼音输入法
  3. Redis学习推荐
  4. Linux 内核之api_man 手册安装
  5. Leecode刷题之旅-C语言/python-20.有效的括号
  6. Linux中程序的编译和链接过程
  7. (数据科学学习手札02)Python与R在循环语句与条件语句上的异同
  8. spring boot踩坑记
  9. hadoop jar x.jar 执行过程
  10. java存储位置经典例子