一、句子逆序 描述: 将一个英文语句以单词为单位逆序排放。例如“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 Setset=new HashSet (); 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
四、蛇形矩阵 描述: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。输入正整数N(N不大于100)输出输出一个N行的蛇形矩阵。样例输入:5样例输出:1 3 6 10 152 5 9 14 164 8 13 17 227 12 18 21 2311 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 }