一、句子逆序
描述: 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
1 public class StringReverse {
2 public static void main(String[] args) {
3 Scanner sc=new Scanner(System.in);
4 System.out.println("请输入需要逆序排放的英文语句:");
5 String word=sc.nextLine();
6 reverse(word);
7 }
8
9 public static void reverse(String word) {
10
11 String regex=" ";
12 String[] strArray=word.split(regex);
13 for(int x=strArray.length-1;x>=0;x--){
14 System.out.print(strArray[x]+" ");
15 }
16
17 }
18
19 }
二、近义词维护
给定接口,设置两个单词相互近义。近义词具有相互传递性,如果A和B为近义词,B和C是近义词,那么A、B、C都为近义词。要求提供接口,查询给定的两个但是是否是近义词关系。并且能提供接口清除所有的近义词关系。
接口说明
/**
* 设置2个单词为近义词
* @param word1 单词一
* @param word2 单词二
* @return 0为成功,-1为失败或其他异常
*/
public int setSynonyms(String word1, String word2)
/**
*判断2个单词是否为近义词(同一单词视为近义词)
*@param word1 单词一
*@param word2 单词二
*@return 为近义词返回true,否则返回false
*/
public boolean isSynonyms(String word1, String word2)
/**
* 清除单词之间的近义词关系
*/
public void clearRelations()
1 public class Synonyms {
2 Set<String> set=new HashSet<String>();
3 public static void main(String[] args) {
4 Synonyms sy = new Synonyms();
5 sy.setSynonyms("1", "2");
6 sy.setSynonyms("2", "4");
7 sy.setSynonyms("4", "6");
8 //sy.clearRelations();
9 System.out.println(sy.isSynonyms("1", "6"));
10 }
11
12 public void setSynonyms(String string, String string2){
13 set.add(string);
14 set.add(string2);
15 }
16
17 boolean isSynonyms(String string, String string2) {
18 boolean flag = false;
19 if (string.equals(string2)) {
20 flag= true;
21 }else if (set.contains(string) && set.contains(string2)) {
22 flag = true;
23 }else{
24 flag=false;
25 }
26
27
28 return flag;
29
30 }
31 public void clearRelations(){
32 set.clear();
33 }
34 }
三、数字颠倒
描述: 输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑复数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(int number);
1 public class ReverseNum {
2 public static void main(String[] args) {
3 Scanner sc=new Scanner(System.in);
4 System.out.println("请输入数据的位数:");
5 int n=sc.nextInt();
6 System.out.println("请输入一个"+n+"位数据: ");
7 int number=sc.nextInt();
8
9 int[] arr=new int[n];
10 int index=0;
11
12 while(number>0){
13 arr[index]=number%10;
14 index++;
15 number/=10;
16 }
17 for(int x=0;x<index;x++){
18 System.out.print(arr[x]);
19 }
20
21 }
22
23 }
四、蛇形矩阵
描述: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
输入
正整数N(N不大于100)
输出
输出一个N行的蛇形矩阵。
样例输入:5
样例输出:
1 3 6 10 15
2 5 9 14 16
4 8 13 17 22
7 12 18 21 23
11 19 20 24 25
接口说明
/**
*
* 输入一个不大于100的数字,产生蛇形矩阵字符串
*
* 例如输入5时,产生如下蛇形矩阵输出字符串,每个数字之间用空格分开
* 1 3 6 10 15
* 2 5 9 14 16
* 4 8 13 17 22
* 7 12 18 21 23
* 11 19 20 24 25
*
*
* @param number 不大于100的数字
* @return 蛇形矩阵字符串(需要控制换行)
*/
public String getResult(int number);
1 public class SnakeNum {
2 public static void main(String[] args) {
3 SnakeNum sn = new SnakeNum();
4 Scanner sc = new Scanner(System.in);
5 System.out.println("请输入小于100的正整数:");
6 int n = sc.nextInt();
7 sn.getResult(n);
8 }
9
10 public void getResult(int number) {
11 int arr[][] = new int[number][number];
12 int k = 1;
13 for (int i = 0; i < number; i++) {
14 int t = i;
15 for (int j = 0; j <= i; j++) {
16 arr[t][j] = k;
17 k++;
18 t--;
19 }
20 }
21
22 for (int x = number - 1; x > 0; x--) {
23 for (int y = 1; y <= x; y++) {
24 if (x % 2 == 0) {
25 arr[y + number - x - 1][number - y] = k++;
26 } else {
27 arr[number - y][y + number - x - 1] = k++;
28 }
29 }
30 }
31
32 for (int i = 0; i < number; i++) {
33
34 for (int j = 0; j < number; j++) {
35
36 System.out.print(arr[i][j] + "\t");
37 }
38 System.out.println();
39 }
40 }
41 }