zoukankan      html  css  js  c++  java
  • 华为:字符集合

    字符集合
    输入一个字符串,求出该字符串包含的字符集合
    输入描述:
    每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。
    输出描述:
    每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。
    输入例子:
    abcqweracb
    输出例子:
    abcqwer

    解题

    标记法时间复杂度太差了,可以用HashMap增加了空间复杂度

    我的标记法
    import java.util.Scanner;
    public class Main{
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                String  str = in.next();
                char[] chars = str.toCharArray();
                for(int i = 0;i<chars.length;i++){
                    for(int j =i+1;j< chars.length;j++){
                        if(chars[i]!='+' && chars[i] == chars[j]){
                            chars[j] = '+';
                        }
                    }
                }
                String res ="";
                for(int i =0;i<chars.length ;i++){
                    if(chars[i] != '+'){
                        res += chars[i]+"";
                    }
                }
                String res2 = String.valueOf(chars);
                //System.out.println(res);
                System.out.println( res2.replaceAll("[+]","") );
                 
            }
        }
    }
    这样标记是比较好的
    import java.util.Scanner;public class Main{
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                String  str = in.next();
                int[] A = new int[256];
                for(int i = 0;i< str.length() ;i++){
                    char ch = str.charAt(i);
                    A[ch]++;
                }
                String res="";
                for(int i = 0;i< str.length();i++){
                    char ch = str.charAt(i);
                    if(A[ch]!=0){
                        res+=ch;
                        A[ch] = 0;
                    }
                }
                System.out.println(res);
                
            }
        }
    }
  • 相关阅读:
    #include <functional>
    3.3内联函数
    如何查看内存占用和运行速度
    属性和方法的动态绑定和限制
    __slots__节约空间
    函数进阶之一等对象
    python继承之super
    python的方法VSjava方法
    python面向对象基础(三)内置方法 __xx__
    python面向对象基础(二)反射
  • 原文地址:https://www.cnblogs.com/theskulls/p/5289306.html
Copyright © 2011-2022 走看看