`
ljl_ss
  • 浏览: 54828 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

解:输入一个字符串,输出该字符串中对称的子字符串的最大长度

J# 
阅读更多

package algorithm;

/** 
 * 功能描述
 * 
 * @author ljl_20082009@163.com
 * @version Revision: 0.01  Date: 2011-4-29 上午09:29:21
 */
public class Test {
   
    public static int catString(String src){
    	int a = 0;
    	for(int i = 0;i<src.length();i++){
    		String sub=src.charAt(i)+"";
    		for( int j=i+1;j<src.length();j++){
    			sub += src.charAt(j);
    			if(isSymmetry(sub)){
    				System.out.println("找到对称子串:"+ sub);
    				a = sub.length()>a?sub.length():a;
    			}
    		}
    	}
    	return a;
    }
    
	/**
	 * description: 判断字符串是否是对称串
	 * @param args
	 * @author ljl_20082009@163.com
	 */
	public static boolean isSymmetry(String str){
		int j = str.length()-1;
       for(int i=0;i<str.length() && j>i;i++){  	
    	   if(str.charAt(i)!=str.charAt(j)){
    		   return false;
    	   }
    	   j--;
       }
		return true;
	}
	public static void main(String[] args) {
		System.out.println("最大子串长度为:"+catString("bsgoogs"));

	}

}

1
3
分享到:
评论
2 楼 ljl_ss 2011-04-29  
jianpc 写道
isSymmetry为什么不写成这样(未考虑异常或空值):
	public static boolean isSymmetry(String str){  
       StringBuffer sb = new StringBuffer(str);
       return str.equals(sb.reverse().toString());
    }

谢谢提醒,我写得有些毛燥
1 楼 jianpc 2011-04-29  
isSymmetry为什么不写成这样(未考虑异常或空值):
	public static boolean isSymmetry(String str){  
       StringBuffer sb = new StringBuffer(str);
       return str.equals(sb.reverse().toString());
    }

相关推荐

Global site tag (gtag.js) - Google Analytics