西安尚学堂练习09.11|Java编程笔试面试题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了西安尚学堂练习09.11|Java编程笔试面试题相关的知识,希望对你有一定的参考价值。

  • 功能描述:删除字符串中字符个数最少的字符,最少字符串有多个,最少的要全部删除,然后返回该子字符串。
    输入:asdasdas
    输出:asasas
    解答:
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    public class DeleteLittle
    public static void main(String[] args)
    String str = "asdasdas";
    System.out.println(deleteLittle(str));
    public static String deleteLittle(String str)
    Map<Character,Integer> map = new HashMap<Character,Integer>();
    char[] ch = str.toCharArray();
    for(int i = 0;i<ch.length;i++)
    if(!map.containsKey(ch[i]))
    map.put(ch[i], 1);
    else
    map.put(ch[i], map.get(ch[i])+1);
    List<Map.Entry<Character,Integer>> list = newArrayList<Map.Entry<Character,Integer>>(map.entrySet());
    Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>()br/>@Override
    public int compare(Entry<Character, Integer> o1,
    Entry<Character, Integer> o2)
    return o1.getValue().compareTo(o2.getValue());
    );
    String[] s = str.split(list.get(0).getKey().toString());
    StringBuffer sb = new StringBuffer();
    for(int i = 0;i<s.length;i++)
    sb.append(s[i]);
    return sb.toString();
    2.功能描述:输入字符串,将该字符串中数字放到非数字的后面,并保持原有顺序不变。
    例如:h3a2p0p1y----------happy3201
    public class Demo27
    public static void main(String[] args)
    String str = "h3a2p0p1y";
    System.out.println(childStr(str));
    public static String childStr(String inputStr)
    String numStr = "";
    String str = "";
    String numRegex = "[0-9]";
    String strRegex = "[a-zA-Z]";
    for(int i = 0;i<inputStr.length();i++)
    if((inputStr.charAt(i)+"").matches(numRegex))
    numStr += inputStr.charAt(i);
    else if((inputStr.charAt(i)+"").matches(strRegex))
    str += inputStr.charAt(i);
    return str+numStr;
    3.提取不重复的整数
    描述: 输入一个int型32位整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
    运行时间限制: 10 Sec
    内存限制: 无限制
    输入: 整数,如9876673
    注意:
    1、整数最后的0,请忽略,例如:输入1750,输出:571
    2、负数,保留‘-‘在前面,例如:输入-175,输出:-571
    输出: 整数,如37689
    样例输入: 9876673
    样例输出: 37689
    解答:
    public class Demo37
    public static void main(String[] args)
    int num = -12310;
    System.out.println(getConvertInt(num));
    public static int getConvertInt(int num)
    String str = String.valueOf(num);
    StringBuffer sb = new StringBuffer();
    boolean flg = true;
    if(str.charAt(0) == ‘-‘)
    flg = false;
    sb.append(str.charAt(0));
    if(str.charAt(str.length()-1) != ‘0‘)
    sb.append(str.charAt(str.length()-1));
    for(int i = str.length()-2;i>0;i--)
    sb.append(str.charAt(i));
    if(flg)
    sb.append(str.charAt(0));
    return Integer.parseInt(sb.toString());
  • 以上是关于西安尚学堂练习09.11|Java编程笔试面试题的主要内容,如果未能解决你的问题,请参考以下文章

    西安尚学堂练习9.5|Java编程笔试面试题

    西安尚学堂练习09.17|Java编程笔试面试题

    西安尚学堂 练习09.03|Java编程笔试面试题

    西安尚学堂练习09.10|Java编程笔试面试题

    尚学堂练习9.7|Java编程笔试面试题

    12月份Java面试题与答案汇总