hdu 2279字符串处理

这题用Java最方便了,直接用Java的正则表达式匹配功能~~~~~~~

import java.util.*;

import java.util.regex.Matcher;

import java.util.regex.Pattern;



public class Main {

    public static void main(String[] args) {

        Scanner cin = new Scanner(System.in);

        while(cin.hasNextInt()) {

            int N = cin.nextInt();

            int M = cin.nextInt();

            String[] strs = new String[N];

            for(int i = 0; i < N; i++) {

                strs[i] = cin.next();

            }

            for(int i = 0; i < M; i++) {

                String op = cin.next();

                op = op.replaceAll("\\?", Matcher.quoteReplacement("."));

                op = op.replaceAll("\\*", Matcher.quoteReplacement(".*"));

                Pattern p = Pattern.compile(op);

                int ans = 0;

                for(int j = 0; j < N; j++) {

                    if(p.matcher(strs[j]).matches()) {

                        ans++;

                    }

                }

                if(ans > 0) {

                    System.out.println(ans);

                }else {

                    System.out.println("Not match");

                }

            }

        }

    }

}

你可能感兴趣的:(字符串处理)