求最大连续子序列长度(阿里巴巴2015研发岗机试算法第一题)

由于准备不充分,妥妥的被阿里虐了。

import java.util.Scanner;

public class GetMaxSeqLength {
	/**
	 * 题目:
	 * 给定一个query和一个text,均由小写字母组成。
	 * 要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。
	 * 例如, query为“acbac”,text为“acaccbabb”,
	 * 那么text中的“cba”为最长的连续出现在query中的字母序列,
	 * 因此,返回结果应该为其长度3。请注意程序效率。
	 * 思路:
	 * 截取query的子字符串(按照从多至少顺序截取),与text进行比较
	 */
	public static void main(String[] args) {
		
		Scanner text_in = new Scanner(System.in);
		String text = text_in.next();
		Scanner query_in = new Scanner(System.in);
		String query = query_in.next();
		System.out.println("query:"+query);
		boolean flag=true;
		for(int i=query.length()-1; i>=0 && flag;i--){
			for(int j=0;j+i<=query.length()-1;j++){
				String temp = query.substring(j,j+i+1);
				int result=text.indexOf(temp);
				System.out.println(result);
				if(result==1){
					System.out.println("最大长度:"+temp.length());
					flag=false;
					break;
				}
			}
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值