句子逆序,近义词维护,数字颠倒,蛇形矩阵
2015-08-08 17:23
204 查看
一、句子逆序 描述: 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明 /** * 反转句子 * * @param sentence 原句子 * @return 反转后的句子 */ public String reverse(String sentence);
public class StringReverse { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入需要逆序排放的英文语句:"); String word=sc.nextLine(); reverse(word); } public static void reverse(String word) { String regex=" "; String[] strArray=word.split(regex); for(int x=strArray.length-1;x>=0;x--){ System.out.print(strArray[x]+" "); } } }
二、近义词维护 给定接口,设置两个单词相互近义。近义词具有相互传递性,如果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()
public class Synonyms { Set<String> set=new HashSet<String>(); public static void main(String[] args) { Synonyms sy = new Synonyms(); sy.setSynonyms("1", "2"); sy.setSynonyms("2", "4"); sy.setSynonyms("4", "6"); //sy.clearRelations(); System.out.println(sy.isSynonyms("1", "6")); } public void setSynonyms(String string, String string2){ set.add(string); set.add(string2); } boolean isSynonyms(String string, String string2) { boolean flag = false; if (string.equals(string2)) { flag= true; }else if (set.contains(string) && set.contains(string2)) { flag = true; }else{ flag=false; } return flag; } public void clearRelations(){ set.clear(); } }
三、数字颠倒 描述: 输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑复数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 接口说明 /** * 反转句子 * * @param sentence 原句子 * @return 反转后的句子 */ public String reverse(int number);
public class ReverseNum { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入数据的位数:"); int n=sc.nextInt(); System.out.println("请输入一个"+n+"位数据: "); int number=sc.nextInt(); int[] arr=new int ; int index=0; while(number>0){ arr[index]=number%10; index++; number/=10; } for(int x=0;x<index;x++){ System.out.print(arr[x]); } } }
四、蛇形矩阵 描述: 蛇形矩阵是由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);
public class SnakeNum { public static void main(String[] args) { SnakeNum sn = new SnakeNum(); Scanner sc = new Scanner(System.in); System.out.println("请输入小于100的正整数:"); int n = sc.nextInt(); sn.getResult(n); } public void getResult(int number) { int arr[][] = new int[number][number]; int k = 1; for (int i = 0; i < number; i++) { int t = i; for (int j = 0; j <= i; j++) { arr[t][j] = k; k++; t--; } } for (int x = number - 1; x > 0; x--) { for (int y = 1; y <= x; y++) { if (x % 2 == 0) { arr[y + number - x - 1][number - y] = k++; } else { arr[number - y][y + number - x - 1] = k++; } } } for (int i = 0; i < number; i++) { for (int j = 0; j < number; j++) { System.out.print(arr[i][j] + "\t"); } System.out.println(); } } }
相关文章推荐
- Linux $HOME下文件记录(Vim/Shell)
- WebLogic、WebSphere、JBOSS、Tomcat之间的区别
- Topcoder SRM 663 Div2 Hard: CheeseRolling(状压DP)
- ubuntu下nginx的安装
- Linux常用命令大全
- linux系统的颜色配置
- PhotoShop 历史记录画笔工具的局部状态修饰功能
- Linux LVM 磁盘管理
- linux下vi命令大全
- 我的ROS入门(三):ubuntu-15.04-desktop-amd64配置ROS
- linux下的so、o、lo、a、la文件的区别
- Linux网卡数据包的接收
- (大数据工程师学习路径)第一步 Linux 基础入门----简单的文本处理
- Linux高并发机制——epoll模型
- linux 死机 处理 reisub
- (大数据工程师学习路径)第一步 Linux 基础入门----命令执行顺序控制与管道
- OC-@property后的修饰符及其用法小结
- Linux根文件系统详解
- [转载] 分析Linux内核创建一个新进程的过程
- Apache的Rewrite设置文件存在则不rewrite