黑马程序员技术交流社区
标题:
判断一个字符串,是不是对称字符串
[打印本页]
作者:
Justfeeling
时间:
2014-9-22 11:07
标题:
判断一个字符串,是不是对称字符串
/*
* 判断一个字符串是否是对称字符串
* 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
*/
public class Test1 {
public static void main(String[] args) {
String str = null;
System.out.println(str + ":" + isSymmetric(str));
str = "";
System.out.println(str + ":" + isSymmetric(str));
// 偶数长度
str = "abccba";
System.out.println(str + ":" + isSymmetric(str));
// 奇数长度
str = "abcdcba";
System.out.println(str + ":" + isSymmetric(str));
str = "abca";
System.out.println(str + ":" + isSymmetric(str));
}
public static boolean isSymmetric(String str) {
if (null == str) {
return false;
}
for (int i = 0; i < str.length() / 2; i++) {
// 比较距字符串两头长度相同的字符是否一样
if (str.charAt(i) != str.charAt(str.length() - i - 1)) {
return false;
}
}
return true;
}
}
复制代码
作者:
夕默
时间:
2014-9-22 12:14
传说中的回文字符串,曾经接触到的时候用栈来实现的。楼主发这个贴是几个意思?
作者:
更上一层
时间:
2014-9-22 23:53
参考一下我写的代码
package com.itheima;
/**
* 第1题:
* 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
*
*
*
*/
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(checkSymmetry("aabcddcbaa"));
}
public static boolean checkSymmetry(String str){
char[] array = str.toCharArray(); //将字符串装换成字符数组
int len = array.length;
if(len==0 || len==1){ //当字符数组的长度为0或1时,这个字符串不是对称的
return false;
}
int x = 0; //定义2个指针一个为X指向字符串首
int y = len-1; //一个名称为Y指向字符串尾
for(int i=0;i<len/2;i++){
if(array[x]!=array[y]){
return false; //如果发现没有对称的,则返回false
}
x++; //将指针向右移动
y--; //将指针向左移动
}
return true;
}
}
复制代码
作者:
liqi
时间:
2014-9-23 09:36
这个长度不需要分奇数偶数,长度%2,如果是奇数,那么中间的那个数是不用判断的,所以不用管奇数偶数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2