您的位置:首页 > 职场人生

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

2019-09-11 16:39 155 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_45557294/article/details/100740938
  1. 功能描述:删除字符串中字符个数最少的字符,最少字符串有多个,最少的要全部删除,然后返回该子字符串。
    输入: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>>(){
    @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());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: