博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
159. Longest Substring with At Most Two Distinct Characters
阅读量:6902 次
发布时间:2019-06-27

本文共 1118 字,大约阅读时间需要 3 分钟。

Given a string, find the length of the longest substring T that contains at most 2 distinct characters.For example, Given s = “eceba”,T is "ece" which its length is 3.
p1, p2 表示某个char最后一次出现的地方.longest substring可能只包含一种char, 或者两种char.1. 只包含一种Char, 强制保持p1 == p22. 出现两种char, 保证p1 <= p2, 为了计算方便3. 出现第三种char的时候,i - (p1+1) + 1 = i- p1 直接计算出当前substring长度。同时保证p1<=p2.
public class Solution {    public int lengthOfLongestSubstringTwoDistinct(String s) {        if(s == null || s.length() == 0) return 0;        int p1 = 0, p2 = 0, len = 1, max = 1;        char[] arr = s.toCharArray();        for(int i = 1; i < arr.length; i++){            // third char appear            if(p1 != p2 && arr[i] != arr[p1] && arr[i] != arr[p2]){                if(len > max) max = len;                len = i - p1;                p1 = p2;                p2 = i;            } else {                // same char as p1 and p2                if(arr[i] == arr[p1]){                    p1 = p1 == p2 ? i : p2;                }                len++;                p2 = i;            }        }        if(len > max) max = len;        return max;    }}

转载地址:http://wwvdl.baihongyu.com/

你可能感兴趣的文章
用JavaScript实现让浏览器停止载入页面
查看>>
[原创]FineUI秘密花园(九) — 表单验证
查看>>
使用jQueryUI的dialog实现一个提示功能
查看>>
2014年西昌邛海湿地马拉松赛
查看>>
ZeroMQ接口函数之 :zmq_connect - 由一个socket创建一个对外连接
查看>>
lua学习项目笔记
查看>>
Git_期末总结
查看>>
C文件操作的语言fgets()
查看>>
Python迭代器和生成器
查看>>
MFC office2007风格设置左侧导航栏 [转]
查看>>
Mysql游标
查看>>
struts2获得提交是get还是post方法提交
查看>>
开源任务管理平台TaskManagerV2.0介绍及升级说明
查看>>
Java程序员的日常——经验贴(纯干货)
查看>>
Spring配置文件头及xsd文件版本
查看>>
一个简单的Android富文本TextView实现
查看>>
iOS:个人浅谈工厂模式
查看>>
js-权威指南学习笔记14
查看>>
linux查看文件夹大小,备份文件夹zip压缩解压
查看>>
算法笔记_149:图论之桥的应用(Java)
查看>>