leetcode每日一题2

发布时间:2024年01月05日

第一个出现两次的字母

题目

给你一个由小写英文字母组成的字符串 s ,请你找出并返回第一个出现两次的字母。 注意:如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前,则认为字母 a 在字母 b 之前出现两次。s 包含至少一个出现两次的字母。

提示

  • 2 <= s.length <= 100

  • s 由小写英文字母组成

  • s 包含至少一个重复字母

解题思路

对于本题,我们可以分别定义一个整型数组a和一个字符数组c 整数数组用来接收每个字符出现的次数 字符数组用来接收所输入的字符串中的小写英文字母 通过出现两次 这一条件 当整型数组a接收的某个字符次数为2时即为第一个出现两次的字母 最后输出对应的字符数组c中的元素 即为答案

代码如下

public static void main(String[] args){
    String s = new String();//定义一个字符串数组
    Scanner scan = new Scanner(System.in);
    s = scan.next();//接收输入的字符串
    int b;
    b = s.length();//定义一个整形变量b等于输入的字符串的长度
    char []c = new char[b];//定义一个字符数组c 使其长度为字符串的长度
    int []a = new int [26];//定义一个整型数组a 长度为26 正好用于接收26个字母所出现的次数
    for(int i = 0;i < b;i++){
        c[i] = s.charAt(i);//把字符串中的每个字符接收到c数组中
    }
    for(int i = 0;i < b;i++){
        a[c[i] - 'a']++;//遍历c数组中的每个元素 并把每个字母的出现次数接收进a数组中
        if (a[c[i] - 'a'] == 2){//当某个字母在a数组出现次数为2时,输出这个字母
            System.out.println(c[i]);
            break;//当出现第一个出现两次字母时,就退出循环
        }
    }
}
文章来源:https://blog.csdn.net/Arguan_/article/details/135394786
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。