zoukankan      html  css  js  c++  java
  • 【算法设计与分析基础】6、蛮力字符匹配

    package com.cutterpoint.gogogo.program;
    
    /**
     * 
     * .
     * 
     * @版权:福富软件 版权所有 (c) 2015
     * @author xiaof
     * @version Revision 1.0.0
     * @see:
     * @创建日期:2017年3月15日
     * @功能说明:
     *
     */
    public class BruteForceStringMatch {
        
        public static int pipei(String t, String p) {
            // 循环遍历到t.length-p.length的次数
            int cha = t.length() - p.length();
            char tt[] = t.toCharArray();
            char pp[] = p.toCharArray();
            for (int i = 0; i <= cha; ++i) {
                // 进行匹配循环遍历模式
                int j = 0;
                while (j < p.length() && tt[i + j] == pp[j]) {
                    // 如果匹配成功,那么整体后移
                    ++j;
                    // 如果j++之后就是到了模式末尾,那么返回位置
                    if (j == p.length())
                        return i; // 从第i位开始,模式匹配第一个子串ok
                }
            }
            
            return -1;
        }
        
        public static void main(String[] args) {
            String t = "cutterpoint";
            String p = "point";
            System.out.println(BruteForceStringMatch.pipei(t, p));
        }
        
        
    }
    

      

    这个方法的效率显然无法直视,后面会有相应的改良,比如kmp算法

  • 相关阅读:
    MySQL之SELECT用法
    Linux中find常见用法示例
    date命令
    backupMysql.sh
    Shell脚本中使用function(函数)示例
    zabbix邮件告警
    Zabbix系统数据采集方法总结
    TOMCAT原理详解及请求过程
    tomcat-users.xml 配置
    zabbix_sender用法实例
  • 原文地址:https://www.cnblogs.com/cutter-point/p/6552639.html
Copyright © 2011-2022 走看看