找到字符串中无重复最长的字符子串

来源:互联网 发布:店铺seo是什么意思 编辑:程序博客网 时间:2024/05/18 02:07
/** * Created by lxw, liwei4939@126.com on 2017/11/1. * 找到字符串中无重复最长的字符子串 */public class maxUniqueString {    public int maxUnique(String str){        if(str == null || str.equals("")){            return 0;        }        char[] chars = str.toCharArray();        int[] map  =new int[256];        for (int i=0; i< 256; i++){            map[i] = -1;        }        int len  =0;        int pre = -1;        int cur  =0;        for (int i=0; i< chars.length; i++){            pre = Math.max(pre, map[chars[i]]);            cur = i - pre;            len = Math.max(cur, len);            map[chars[i]] = i;        }        return len;    }    public static void main(String[] args){        maxUniqueString tmp = new maxUniqueString();        String str1 = "abcd";        String str2 = "aabcb";        System.out.println(tmp.maxUnique(str1));        System.out.println(tmp.maxUnique(str2));    }}

原创粉丝点击