pta h0083. 只出现一次的字符

题目

给你一个只包含小写字母的字符串。

请你判断是否存在只在字符串中出现过一次的字符。

如果存在,则输出满足条件的字符中位置最靠前的那个。

如果没有,输出”no”。

输入格式:

共一行,包含一个由小写字母构成的字符串。

数据保证字符串的长度不超过100000。

输出格式:

输出满足条件的第一个字符。

如果没有,则输出”no”。

输入样例:

abceabcd

输出样例:

e

代码

java

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();    //字符串接收输入
        char[] ch = str.toCharArray();    //转为单个字符的数组
        int i,j;
        for(i=0;i<ch.length;i++){    //遍历数组查重
            for(j=0;j<ch.length;j++){    //目标i字符的前后都要查
                if(j==i)    //跳过字符本身
                    continue;
                if(ch[i]==ch[j]){    //遇到重复则跳过到下一个i字符,注意因为是char类型字符比较,不能用String.equals()函数
                    break;
                }
            }
            if(j>=ch.length){    //若j自加到达数组边界,说明没有与目标i字符相同的字符,直接输出并结束循环
                System.out.println(ch[i]);
                break;
            }
        }
        if(i==ch.length){    //若目标i自加到达数组边界,说明数组中没有不重复的字符,输出no
            System.out.println("no");
        }
    }
}

c++解题代码后面有机会补上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值