回文问题

/**
		 * 最大长颠倒字符串 它的长度应该小于等于整个字符串(长度为L)的的一半 从假设最大颠倒长度为整个的1/2L
		 * 然后查这个长度的颠倒字符串是否存在 存在就返回,不存在,则继续往下找1/2L-1,以此类推1/2L-1....一直到0。如果为0说明没有
		 * 
		 */

		String string = "a123ghfuhg321asd131";
		// String revString=getLongString(string);
		int maxStr = string.length() / 2;
		int len = string.length();
		String revString = null;
		boolean flag = false;
		for (int i = maxStr; i >= 0; i--) {
			for (int j = 0; j < len; j++) {
				if ((j + i + 1) > (len - 1))
					continue;
				String subString = string.substring(j, j + i + 1);
				revString = new StringBuffer(subString).reverse().toString();
				int flag1 = string.indexOf(revString);
				if (flag1 != -1) {
					flag = true;
					System.out.println(subString + ":" + revString + ";" + i);
					break;
				}
			}
			if (flag)
				break;
		}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值