华为2013校园招聘的上机试题,记得有两道,好忧伤的是当时被第一道试题卡壳了,印象尤深,就是回文数问题,时间过去一年多了,记得题目:给出一个字符串,判断是否是回文字符串? 刚开始的思路是将字符串转为数组n(字符串长度),再根据arr[i]!=arr[n-i-1]。反正是没做出来,可能是第一次参加招聘和上机做题(其实真正原因是基础很薄弱)
最近又碰到这样的题目,以此小记逝去的光阴。
判断回文数:
import java.util.Scanner;
public class PalindromicNum {
public static void main(String[] args) {
Scanner sin = new Scanner(System.in);
int PcNum = sin.nextInt();
int PalindromicNum = PcNum;
int[] arr = new int[100];
int i =0;
while(PcNum>0)
{
arr[i] = PcNum % 10; //从个位开始,将每个位上的整数放到数组arr[]中,如PalindromicNum=12342321, 则arr[0]=1,....arr[3]=2,.........
PcNum = PcNum/10; //减少一位,如1234/10=123,524/10=52
i++;
}
for(int k=0;k<i/2;k++){
if(arr[k]!=arr[i-k-1]){
System.out.println(PalindromicNum+"不是回文数");
return;
}
}
System.out.println(PalindromicNum+"是回文数");
}
}
PS:判断回文字符串(StringBuffer的reverse方法还是第一次知道)
import java.util.Scanner;
public class PalindromicStr {
public static void main(String[] args) {
Scanner sin = new Scanner(System.in);
String str = sin.next();
StringBuffer sb = new StringBuffer(str);
StringBuffer str1= sb.reverse();//将字符串逆序
System.out.println(str1);
String sstr = str1.toString();
if(str.equals(sstr)){
System.out.println(str+"是回文字符串");
}
else{
System.out.println(str+"不是回文字符串");
}
}
}