对于字符串库中,判断给定的字符串,在库中是多少个String的子串。

来源:互联网 发布:电脑网络电视直播软件 编辑:程序博客网 时间:2024/06/14 04:36

题目:现有一个数量不大的String库,并且每个String 都不是很长,对给定的String,你要写一个程序算出它是库中多少个String的子串。

输入:有多个case,每个case的第一行是一个正整数N,之后N行每行一个string,代表string库,每个string由a-z  26个小写字母组成,然后是输入一个正整数M,之后M行每行一个string代表你要查询的string。
思路:循环遍历。对于库中每一条字符串,遍历所有的输入字符串,看是否包含。而后继续遍历库中所有的字符串。
定义一个数组,数组长度为输入字符串的长度,正好输出对应的每一个字符串在库中被包含的条数。

java代码如下:

import java.util.Scanner;public class Main02 {public static void run(String[] ku,String[] target){int[] a = new int[target.length];for(int i=0;i<ku.length;i++){for(int j =0;j<target.length;j++){if(ku[i].contains(target[j])){a[j]++;}}}for(int i=0;i<a.length;i++)System.out.println(a[i]);}public static void main(String[] args){Scanner in = new Scanner(System.in);while(in.hasNext()){int N =in.nextInt();in.nextLine();String[] ku=new String[N];for(int i=0;i<N;i++){ku[i] = in.nextLine();}int M =in.nextInt();in.nextLine();String[] target=new String[M];for(int j=0;j<M;j++){target[j] = in.nextLine();}Main02 aa =new Main02();aa.run(ku, target);}}}

运行结果如下:
输入:3
         aaa
  aaa
baa
2
aa
ba
输出:3
  1
阅读全文
0 0