标签:
一、句子逆序
描述: 将一个英文语句以单词为单位逆序排放。例如“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 }
标签:
原文地址:http://www.cnblogs.com/wamwf/p/4713527.html