最大正向匹配
-
时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
- 给定2个短字符串str1,str2,在一个长字符串中找出以str1开头并且以str2结尾的最长字符串。 输入
-
第1行为str1, 表是开头字符串
第2行为str2, 表示结尾字符串
第3行为一个整数,表示接下来将要输入的数据行数n
第4行以下为输入字符串
所有字符串小于1024长
输出
- n行, 输出找到的字长字串,包括首尾 样例输入
-
ab ba 3 aab11234ab56ba789baba abababa adsjjafshabbajafkalf
样例输出
-
ab11234ab56ba789baba abababa abba
提示
-
可以利用指针和字符串处理函数(算法)解题
-
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String a=sc.next(); String b=sc.next(); int m=sc.nextInt(); String[] c=new String[m]; for(int i=0;i<m;i++){ c[i]=sc.next(); } for(int j=0;j<m;j++){ int x=c[j].indexOf(a); //从前往后数a最早出现位置 int y=c[j].lastIndexOf(b); //从前往后数b最晚出现的位置 System.out.println(c[j].substring(x,y+b.length())); //输出字符串的子字符串从x到y+b.length } } }