题目描述

问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。
要求:
实现如下2个通配符:
*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)
?:匹配1个字符

输入:
通配符表达式;
一组字符串。

输出:
返回匹配的结果,正确输出true,错误输出false

输入描述:

先输入一个带有通配符的字符串,再输入一个需要匹配的字符串

输出描述:

返回匹配的结果,正确输出true,错误输出false

示例1

输入

te?t*.*
txt12.xls

输出

false

代码如下:

 package com.yzh.hehe;

 import java.util.Scanner;

 public class StringTongPei {

     public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while (scanner.hasNext()) {
System.out.println(stringTongPei(scanner.nextLine(), scanner.nextLine()));
}
scanner.close();
}
//动态规划(也可用Java自带的正则解决)
private static boolean stringTongPei(String tp,String string) {
int length1=tp.length();
int length2=string.length();
boolean[][] arr=new boolean[length1+1][length2+1];
arr[0][0]=true;
for (int i = 1; i <=length1; i++) {
for (int j = 1; j <= length2; j++) {
if (tp.charAt(i-1)=='*') {
if (arr[i-1][j]==true||arr[i][j-1]==true) {
arr[i][j]=true;
}
}else if (tp.charAt(i-1)=='?') {
if (arr[i-1][j-1]==true) {
arr[i][j]=true;
}
}else {
if (arr[i-1][j-1]==true&&(tp.charAt(i-1)==string.charAt(j-1))) {
arr[i][j]=true;
}
}
}
}
return arr[length1][length2]; } }
参考:http://www.mamicode.com/info-detail-986984.html

最新文章

  1. Myeclipse8.6配置android_SDK,进行android开发(转载)
  2. sql server 行转列(转载)
  3. ASP.NET网站开发中的配置文件
  4. android学习——error opening trace file: No such file or directory (2)
  5. 二叉树遍历 空间复杂度为O(1)
  6. Daas
  7. 谱曲软件-MuseScore
  8. Http Analyzer 数据抓包
  9. iOS Size Class使用
  10. mybatis基础学习4---懒加载和缓存
  11. 前端自动化(三) 合并压缩css、压缩js、添加时间戳、打包上线操作
  12. [51nod1329]路径游戏
  13. pat1081-1090
  14. ACM算法竞赛:抄课文
  15. Web前端2019面试总结
  16. 小程序view排版
  17. pyglet 绝对路径资源导入以及视频播放(二)
  18. 再次安装fedora23的一些遗留问题的解决
  19. 【剑指offer】重建二叉树
  20. HP-UX oracle RAC 双机实践 (转载)

热门文章

  1. 权限认证之OpenID-OP/RP
  2. 最近玩了下linux下的lampp注意一些使用
  3. 看到的一个关于C++能力分级的描述
  4. 设计模式、j2ee 部 分、EBJ 部 分
  5. 使用STM32的USART的同步模式Synchronous调戏SPI【usart模拟spi理论】
  6. (转载)Android下Affinities和Task
  7. YUV420格式解析&lt;转&gt;
  8. echarts-颜色渐变
  9. Slava and tanks 877C
  10. Lazarus的DBGrid中回车键的处理