`
wolf_awp
  • 浏览: 54979 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

判断一个字符串是否对称

 
阅读更多
/**
 * 判断一个字符串是否对称
 */
public class Symmetric {

	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;
	}
}

输出结果:
null:false
:true
abccba:true
abcdcba:true
abca:false
1
3
分享到:
评论
3 楼 ljl_ss 2011-05-11  
Technoboy 写道
不是,叫回文,用一般用递归实现

个人看法递归只是代码看起来简洁,每递归一次只会增加JVM方法栈的长度,开销比博主的写法大
2 楼 Technoboy 2011-05-11  
不是,叫回文,用一般用递归实现
1 楼 Technoboy 2011-05-11  
这个叫递归,呵呵
public static void main(String[] args) {
		String str = "abcdcba";
		System.out.println(isHuiWen(str, 0, str.length() - 1));
	}
	
	public static boolean isHuiWen(String str, int index, int end){
		
		if(index > end || index == end){
			return true;
		}
		
		if(str.charAt(index) == str.charAt(end)){
			return isHuiWen(str, index + 1, end - 1);
		}
		return false;
	}

相关推荐

Global site tag (gtag.js) - Google Analytics