题目:在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置

解析:题目意思是找整个字符串第一次只出现一次的字符的位置,以google为例子,第一次重复出现的字母为l,该l的位置为4,返回4即可。解题思路为:先看该字母后面有没有重复的,如果后方有重复的,就把该字符添加到已经存在的list里,如果后方没有重复的,还要看该字符的前方有没有重复的,这时候就需要去list里找了,如果list也没有该字符,说明该字符第一次出现了,可以返回了,否则继续找了

import java.util.ArrayList;
import java.util.List;
public class FirstNotRepeatingChar {//googlepublic static int FirstNotRepeatingChar(String str) {List<Character> list = new ArrayList<>();for(int i=0;i<str.length();i++){boolean flag=false;Character temp =str.charAt(i);for(int j=i+1;j<str.length();j++){if(str.charAt(j)==str.charAt(i)){flag=true;//后方有重复的字符break;}}if(flag){//后方存在了,把该字符放入listlist.add(temp);}if(!flag){//后方没有if(!list.contains(temp)){//查看前方有没有,如果前方也没有,那就是第一次出现了return i;}}}return -1;}}

《剑指offer》第一次只出现一次的字符相关推荐

  1. 【LeetCode】剑指 Offer 48. 最长不含重复字符的子字符串

    [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 文章目录 [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 package offer;import ...

  2. 剑指offer——python【第54题】字符流中第一个不重复的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  3. 【剑指offer】最长不含重复字符的子字符串

    题目: * 面试题48:请从字符串中找出一个最长的不包含重复字符的子字符串, * 计算该最长子字符串的长度.假设字符串中只包含从'a'到'z'的字符. * 例如,在字符串中'arabcacfr',最长 ...

  4. 字符扫描剑指Offer读书笔记之第二章2字符替换Strut2教程-java教程

    每日一贴,今天的内容关键字为字符扫描 给定一个字符串str和一个子串SubStr,如果str面里的空间充足,写一个函数将str面里的字符ch替换成SubStr.书中只是一个特例:将格空替换成%20. ...

  5. 【算法】剑指 Offer 48. 最长不含重复字符的子字符串

    1.概述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 ...

  6. leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列

    剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...

  7. 剑指offer做题记录

    1. 剑指 Offer 03. 数组中重复的数字   力扣 class Solution { public:int findRepeatNumber(vector<int>& nu ...

  8. 【leetcode】 剑指 Offer学习计划(java版本含注释)(上)

    目录 前言 第一天(栈与队列) 剑指 Offer 09. 用两个栈实现队列(简单) 剑指 Offer 30. 包含min函数的栈(简单) 第二天(链表) 剑指 Offer 06. 从尾到头打印链表(简 ...

  9. 《剑指offer》75题 C++详细题解

    目录 简单: 剑指 Offer 03. 数组中重复的数字 map: unordered_map: 原地交换 剑指 Offer 05. 替换空格 剑指 Offer 06. 从尾到头打印链表 出栈入栈 双 ...

  10. 【剑指Offer】剑指Offer刷题笔记

    数组和字符串 剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个 ...

最新文章

  1. 如何基于RocketMQ设计一套全链路消息不丢失方案?
  2. css Gradients(渐变)
  3. 杭州 |《PMCAFF产品经理第一课》阿里国际CRM、LinkedIn、丁香园、网易邮箱等一线大咖私房干货免费奉送!...
  4. php4 class,PHP在类中获得当前class名称_php
  5. Makefile文件试错
  6. 國慶和中秋的學習成果
  7. 临键锁如何实现幻读_如何实现智能锁客户裂变?看完你就已成功一半!
  8. python 的异常及其处理
  9. python爬虫爬取公众号_Python爬虫案例:爬取微信公众号文章
  10. 新CEO能使诺基亚起死回生吗?
  11. 经典Hive-SQL面试题及答案
  12. STC15单片机-数码管显示PCB板温度(TM1620驱动芯片使用介绍)
  13. ens32文件空白(没有ens33文件)
  14. java计算机毕业设计高考填报信息系统源码+数据库+系统+lw文档+部署
  15. 计算机逻辑与 或 非的表达式,逻辑表达式
  16. 上海最新消防设施操作员考前必背考点,模拟真题及答案
  17. 手机被偷完整找回方案
  18. 复旦计算机和中科大计算机,复旦大学和中国科学技术大学哪个实力更强?
  19. MongoDB 数据库(一):MongoDB的介绍与安装
  20. 【《机器人技术》复习】

热门文章

  1. Effective Java之对可恢复的情况使用受检异常,对编程错误使用运行时异常(五十八)
  2. 洛谷——P1090 合并果子
  3. 深入理解input中的value、name、id的区别和用法——Web前端自学笔记
  4. 【最优解法】1087 有多少不同的值 (20分)_17行代码AC
  5. 序列化和反序列化的概念与延伸【详细解释 + 样例演示】
  6. 机器学习篇-指标:AUC
  7. Mysql剖析单条查询三种方法
  8. 操作篇 bgp协议了解与学习
  9. Markdown编辑表格实现合并单元格、单元格内容换行
  10. JAVA 串口编程 (一)