穷哈哈~【牛客tracker 每日一题】

张开发
2026/4/20 19:06:37 15 分钟阅读
穷哈哈~【牛客tracker  每日一题】
穷哈哈~时间限制1秒 空间限制256M知识点字符串 双指针网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述“你叉叉唱日出穷哈哈唱日落…”,小哈开心地哼着小调因此小哈是一个爱笑的人每次笑都很有魔性调皮地小哼记录了小哈的一次说的话其中里面可能包含了小哈的笑声并以为字符串来记录小哈的话。已知小哈的笑声是字母a aa和h hh交替的序列例如:a h a h a h ahahahahahaha h a ahaaha,a aa,h hh是符合笑声的合法序列。但是a b a c a b a abacabaabacaba,a a aaaa不符合笑声的合法序列。通过小哼的记录请你求出小哈笑声的最大长度。输入描述输入的第一行给出小哈说话的长度N NN。随后一行中输入一行长度为N NN字符串S SS——表示小哈的话。1 ≤ N ≤ 10 5 1≤N≤10^51≤N≤105S SS仅由小写字母组成。输出描述输出小哈笑声的最大长度。示例1输入7 abacaba输出1示例2输入20 ahahahahahahahahahah输出20解题思路本题核心是线性遍历连续长度维护高效求解字符串中a/h交替子串的最大长度。合法笑声的规则为仅包含字符a/h、相邻字符互不相同。遍历字符串时维护当前连续合法子串长度若当前字符不是a/h直接重置长度为0 00若为合法字符判断与前一字符是否不同不同则长度 1 11相同则重置为1 11。遍历过程中实时更新全局最大长度最终结果即为答案。算法时间复杂度O ( n ) O(n)O(n)空间复杂度O ( 1 ) O(1)O(1)无需额外数据结构完美适配n ≤ 10 5 n≤10^5n≤105的大数据规模。总结核心逻辑遍历字符串维护a/h交替的连续子串长度记录最大值。关键操作判断字符合法性、对比相邻字符更新当前长度、实时刷新最大长度。效率保障线性遍历常数空间无冗余计算高效处理题目最大数据限制。代码内容#includebits/stdc.husingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll p1e97;constll INF1e18;constll M1e610;intmain(){ll n;string s;cinns;ll ans0,cur0;for(ll i0;in;i){if(s[i]!as[i]!h)cur0;else{if(i0s[i]!s[i-1])cur;elsecur1;}ansmax(ans,cur);}coutansendl;return0;}

更多文章