青菜猫(孙宇博客),青菜猫(孙宇博客),青菜猫(孙宇博客)http://www.javasdc.cn/
posts - 29,  comments - 63,  trackbacks - 0
     摘要: java反射 修改静态方法的值 setAccessible太无节操了  阅读全文
posted @ 2013-06-08 11:56 青菜猫(孙宇) 阅读(20404) | 评论 (6)编辑 收藏


     BF(Brute Force)算法核心思想是:首先S[1]和T[1]比较,若相等,则再比较S[2]和T[2],一直到T[M]为止;若S[1]和T[1]不等,则T向 右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。该算法最坏情况下要进行 M*(N-M+1)次比较,时间复杂度为O(M*N)
     比如: String a ="123456789" String b= "23"
   其实就是循环 a一个一个字符匹配,开始a[0]和b[0]匹配,没有找到,直接不用找b[1],直接用a[1]和b[0]匹配发现已经 找到,然后继续用
a[2]和b[1]匹配发现已经 找到。前且是b字符串末尾。说明已经完全找到。返回结果
  JAVA代码实现
/**
     * 匹配字符串,判断 b字符串在a出现的起始位置,没有找到返回(-1)
     * @param a
     * @param b
     * @return
     */
    public static int indexOf(String a,String b){
        char[] as = a.toCharArray();
        char[] bs = b.toCharArray();
        int begin = 0;
        for(int i = 0 ; i <as.length; i++){
            int k = nextStr(as[i], bs,begin);
            //说明已经找到
            if( k == begin ){
                return i-begin;
            }
            //说明找到一个字符,需要继续找
            else if( k >= 0 ){
                begin = k;
            }else{
            //没有找到继续找    
            begin = 0;
            }
        }
        return -1;
    }
    
    
    /**
     * 匹配字符串,找到字符串位置
     * @param c
     * @param cs
     * @param begin
     * @return
     */
    public static int nextStr(char c,char[] cs,int begin){
        //如果字符匹配和已经到了字符尾部青示已经全部匹配
        if(cs[begin] == c && begin == (cs.length-1) ){
            return begin;
        //如果字符匹配但没有到尾部需要继续下移
        }else if(cs[begin] == c){
            return begin+1;
        }
        //完全没有匹配
        else{
            return -1;
        }
    }

 然后在main里面调用indexOf方法看到结果
posted @ 2013-05-21 16:11 青菜猫(孙宇) 阅读(977) | 评论 (0)编辑 收藏
     摘要: 网页seo优化,搜索引擎优化  阅读全文
posted @ 2010-11-11 11:56 青菜猫(孙宇) 阅读(1165) | 评论 (1)编辑 收藏
     摘要: java中判断是否是合法图片  阅读全文
posted @ 2010-09-26 10:41 青菜猫(孙宇) 阅读(2913) | 评论 (2)编辑 收藏
     摘要: FindBugs及标准模板安装使用说明.大家看看  阅读全文
posted @ 2010-05-25 10:09 青菜猫(孙宇) 阅读(1008) | 评论 (0)编辑 收藏
     摘要: java反射 修改静态方法的值 setAccessible太无节操了  阅读全文
posted @ 2013-06-08 11:56 青菜猫(孙宇) 阅读(20404) | 评论 (6)编辑 收藏


     BF(Brute Force)算法核心思想是:首先S[1]和T[1]比较,若相等,则再比较S[2]和T[2],一直到T[M]为止;若S[1]和T[1]不等,则T向 右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。该算法最坏情况下要进行 M*(N-M+1)次比较,时间复杂度为O(M*N)
     比如: String a ="123456789" String b= "23"
   其实就是循环 a一个一个字符匹配,开始a[0]和b[0]匹配,没有找到,直接不用找b[1],直接用a[1]和b[0]匹配发现已经 找到,然后继续用
a[2]和b[1]匹配发现已经 找到。前且是b字符串末尾。说明已经完全找到。返回结果
  JAVA代码实现
/**
     * 匹配字符串,判断 b字符串在a出现的起始位置,没有找到返回(-1)
     * @param a
     * @param b
     * @return
     */
    public static int indexOf(String a,String b){
        char[] as = a.toCharArray();
        char[] bs = b.toCharArray();
        int begin = 0;
        for(int i = 0 ; i <as.length; i++){
            int k = nextStr(as[i], bs,begin);
            //说明已经找到
            if( k == begin ){
                return i-begin;
            }
            //说明找到一个字符,需要继续找
            else if( k >= 0 ){
                begin = k;
            }else{
            //没有找到继续找    
            begin = 0;
            }
        }
        return -1;
    }
    
    
    /**
     * 匹配字符串,找到字符串位置
     * @param c
     * @param cs
     * @param begin
     * @return
     */
    public static int nextStr(char c,char[] cs,int begin){
        //如果字符匹配和已经到了字符尾部青示已经全部匹配
        if(cs[begin] == c && begin == (cs.length-1) ){
            return begin;
        //如果字符匹配但没有到尾部需要继续下移
        }else if(cs[begin] == c){
            return begin+1;
        }
        //完全没有匹配
        else{
            return -1;
        }
    }

 然后在main里面调用indexOf方法看到结果
posted @ 2013-05-21 16:11 青菜猫(孙宇) 阅读(977) | 评论 (0)编辑 收藏
     摘要: java Jnotify实时的监控制定文件夹内文件的变动信息  阅读全文
posted @ 2011-06-24 17:29 青菜猫(孙宇) 阅读(2136) | 评论 (1)编辑 收藏
     摘要: 网页seo优化,搜索引擎优化  阅读全文
posted @ 2010-11-11 11:56 青菜猫(孙宇) 阅读(1165) | 评论 (1)编辑 收藏
     摘要: java中判断是否是合法图片  阅读全文
posted @ 2010-09-26 10:41 青菜猫(孙宇) 阅读(2913) | 评论 (2)编辑 收藏
     摘要: oracle数据库换系统后恢复以前oracle数据操作方法  阅读全文
posted @ 2010-09-14 16:13 青菜猫(孙宇) 阅读(2285) | 评论 (0)编辑 收藏
     摘要: HashMap源码解析,存储实现  阅读全文
posted @ 2010-09-01 11:39 青菜猫(孙宇) 阅读(2121) | 评论 (1)编辑 收藏
     摘要:   阅读全文
posted @ 2010-08-24 10:57 青菜猫(孙宇) 阅读(257) | 评论 (0)编辑 收藏
     摘要: 关于网页打开新窗口的解决方案,拒绝屏蔽  阅读全文
posted @ 2010-07-05 16:09 青菜猫(孙宇) 阅读(3261) | 评论 (10)编辑 收藏
     摘要: Velocity一些使用心得,常用的一些方法  阅读全文
posted @ 2010-05-28 17:08 青菜猫(孙宇) 阅读(431) | 评论 (0)编辑 收藏
仅列出标题  下一页
<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

青菜猫(孙宇)结交天下朋友,在网上吸取知识..

常用链接

留言簿(16)

随笔分类

随笔档案

文章分类

搜索

  •  

最新评论

阅读排行榜

评论排行榜

青菜猫(孙宇博客),青菜猫(孙宇博客),青菜猫(孙宇博客)http://www.javasdc.cn/