您的位置:首页 > 运维架构

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

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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: