字符集合(去重)

输入一个字符串,求出该字符串包含的字符集合,按照字母输入的顺序输出。

数据范围:输入的字符串长度满足 1≤n≤100 1 \le n \le 100 \ 1≤n≤100 ,且只包含大小写字母,区分大小写。

本题有多组输入

输入:

每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。

输出:

每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。

首先这个题的输入的是只有字母的大小写的字母组成的字符串。按顺序输出不重复的元素。

做题思想:

首先,我们的的每个字母都有相对于的int类型的数组。我们只要遍历这个字符串,找到每个字符所得值,在同时,如果这个字符所对应的数组的值是0那么就代表没有重复,那么就将这个字符加到另外一个引用变量,然后再讲这个字符对应的数组的值++,这样如果后面有重复的字母,每次会找到这个数组,发现不是0,那么就不会再将其加入到string引用中。这样我们就可以解题了。

import java.util.Scanner;

public class Main {
    public static StringBuilder func(String str){
        int[] ch = new int[257];
        StringBuilder set = new StringBuilder("");
        int tem;
        for(int i = 0;i<str.length();i++){
            tem = str.charAt(i);
            if(ch[tem]==0){
                set.append(str.charAt(i));
                ch[tem]++;
            }

        }
        return set;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        StringBuilder set = func(str);
        System.out.println(set.toString());
    }
}

链接:字符集合__牛客网
来源:牛客网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值