第一个只出现一次的字符(一串字符串中某个字符只出现一次不算是)
--写的这个可以为查找某个字符在一串字符串中出现一次提供思路
题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
思路:
遍历字符串,找到字符串中某个前后索引一样的值(遍历查找字符第一次出现的位置是不是等于最后一次出现的位置,也就是索引值看是不是一样,如果一样那么代表它只出现了一次,也就是我们字符串中只出现一次的值)
代码:
package com.sinosoft.fis.modular.cus.controller; import java.util.Scanner; /** * @author xubo * @ClassNme Demo1 * @Description TODO * @Date 2021-11-15 15:29:08 * @version1.0 */ public class Demo1 { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); System.out.println("请输入"); String s = scanner.next(); char a = firstUniqChar(s); System.out.println(a); }
public static char firstUniqChar(String s){ int i=0; while(i<s.length()){ if (s.indexOf(s.charAt(i))==s.lastIndexOf(s.charAt(i))){ return s.charAt(i); } i++; } return ' '; } }
我写的这个效率不高,还需要改进,还存在更优解:
新的算法思路是:在原有的基础上,每次判断这个值是否出现过,如果出现过,那么我们就不让他比较了。因为我比较笨,么有看懂,所以以后再来自己写一下。