码迷,mamicode.com
首页 > 其他好文 > 详细

句子逆序,近义词维护,数字颠倒,蛇形矩阵

时间:2015-08-08 18:14:54      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

一、句子逆序
描述:  将一个英文语句以单词为单位逆序排放。例如“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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!