java 题库

第一題:

import java.util.Scanner;

 

/**

 * 字符串反转

 * 题目描述

 * 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

 * 输入描述:

 * 输入N个字符

 * 输出描述:

 * 输出该字符串反转后的字符串

 * 示例1

 * 输入abcd

 * 输出dcba

 */

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()){

            String str= scanner.nextLine();

            //将字符串变成char数组再倒序输出

            char[] chars= str.toCharArray();

            for(int i=chars.length-1;i>=0;i--){

                System.out.print(chars[i]);

            }

            System.out.println();

        }

    }

}

 

第二題:

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**

  • @Author: zhouLai
  • @Date: 2020/3/24 21:22
  • @Version 1.0
  • /
    public class Main {
    /*
    *题目描述
    数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开

输出描述:
输出合并后的键值对(多行)
示例1

1

2

3

4

5

6

7

8

9

10

输入

4

0 1

0 2

1 2

3 4

输出

0 3

1 2

3 4

*/
public static void main(String[] args) {

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Scanner sc = new Scanner(System.in);

while (sc.hasNext()){

    int next = sc.nextInt();

    TreeMap<Integer,Integer> map = new TreeMap<>();

    for (int i = 0; i < next; i++) {

        int key = sc.nextInt();

        int value = sc.nextInt();

        if (map.containsKey(key)){

             map.put(key,map.get(key)+value);

        }else {

            map.put(key,value);

        }

    }

    for (Map.Entry<Integer, Integer> integerIntegerEntry : map.entrySet()) {

        System.out.println(integerIntegerEntry.getKey()+" "+integerIntegerEntry.getValue());

    }

}

}

}

第三題:

 

题目是将一串英文句子反向显示。

题目分析:

  • 调整单词的前后顺序而非字母
  • 一个句子不确定所含单词个数

针对以上两点分析。数据结构“双向链表”比较满足。将句子的每个单词依次放到双向链表头部,最后从链表头部依次遍历出单词即可达到句子反向的目的。

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

public class ReverseWord {

 

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        Deque<String> words = new LinkedList<>();

        for (String word : scanner.nextLine().split("\\s+")) {

            words.addFirst(word);

        }

        System.out.println(String.join(" ", words));

    }

 

}

先进后出链表双向链表

 

第四題:

 

 

import java.util.*;

public class Main {

   public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        while (sc.hasNext()){

            int n = sc.nextInt();

            String [] arr = new String[n];

            for(int i=0;i<n;i++){

                String str = sc.next();

                arr[i] = str;

            }

            Arrays.sort(arr);

            for(int i=0;i<arr.length;i++){

                System.out.println(arr[i]);

            }

        }

        sc.close();

    }

}

上一篇:使用Windows命令行启动关闭服务(net,sc用法)(转)


下一篇:12行代码 让浏览器崩溃,iPhone重启