华为机试题目, 随手一写,有问题欢迎交流。
第一题,请实现一个句子反转,比如输入I am a student 输出student a am I
第二题, 请实现字符逆序,比如abcdef,输出fedcba
import java.util.Scanner;
public class ReverseSentence {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
//获取输入的字符串,仅限一行ab
String str = scanner.nextLine();
String res = reverseSentenceOne(str);
// System.out.println(res);
//获取输入的字符串,仅限一行
String str2 = scanner.nextLine();
String res2 = reverseString(str2);
// System.out.println(res2);
}
private static String reverseSentenceOne(String sentence){
if (null == sentence || sentence.isEmpty()){
return "";
}
String[] s = sentence.split(" ");
StringBuffer stringBuffer = new StringBuffer();
for (int i=s.length-1; i>0; --i){
stringBuffer.append(s[i]+ " ");
}
stringBuffer.append(s[0]);
return stringBuffer.toString();
}
private static String reverseString(String s){
if (null == s || s.isEmpty()){
return "";
}
char[] charsOfS = s.toCharArray();
for (int i=0; i<charsOfS.length / 2; ++i){
char temp = charsOfS[i];
charsOfS[i] = charsOfS[charsOfS.length - 1 - i];
charsOfS[charsOfS.length - 1 - i] = temp;
}
return new String(charsOfS);
}
}