Leetcode-1156 Swap For Maximum Repeated Substring(单字符重复子串的最大长度)
因为只能交换一次,先考虑如果不交换最大的值。
接下来考虑交换,有四种情况
① aaabaaa型 交换一下可以将相邻的两块连在一起,答案就是两块长度之和
② aaabbbaaaa 交换一下也不能连起两块,答案就是最长的长度加一
③ aaab 没有可以交换的,答案就是不交换的长度
④ aaabaaaaba型 交换一下不但可以将相邻的两块连在一起,甚至中间的连接点还是相邻两块的那个字母,答案就是两块长度之和加一
1 #define _for(i,a,b) for(int i = (a);i < b;i ++) 2 3 4 class Solution 5 { 6 public: 7 int check(string &s,int st) 8 { 9 int rnt = 1; 10 _for(i,st+1,s.size()) 11 if(s[i]!=s[i-1]) 12 break; 13 else 14 rnt ++; 15 return rnt; 16 } 17 int maxRepOpt1(string text) 18 { 19 int hash[30]; 20 int kuai[30]; 21 memset(hash,0,sizeof(hash)); 22 memset(kuai,0,sizeof(kuai)); 23 _for(i,0,text.size()) 24 { 25 int len = check(text,i); 26 hash[text[i]-'a'] = max(hash[text[i]-'a'],len); 27 kuai[text[i]-'a'] ++; 28 i += len-1; 29 } 30 int rnt = 0; 31 _for(i,0,29) 32 rnt = max(rnt,hash[i]); 33 34 _for(i,0,text.size()) 35 { 36 int len = check(text,i); 37 if(i+len+1<text.size() && text[i+len+1]==text[i]) 38 { 39 int len2 = check(text,i+len+1); 40 rnt = max(rnt,len+len2); 41 if(kuai[text[i]-'a']>2) 42 rnt = max(rnt,len+len2+1); 43 } 44 if(kuai[text[i]-'a']>1) 45 rnt = max(rnt,len+1); 46 i += len-1; 47 } 48 return rnt; 49 } 50 };
转载于:https://www.cnblogs.com/Asurudo/p/11334560.html
Leetcode-1156 Swap For Maximum Repeated Substring(单字符重复子串的最大长度)相关推荐
- sqlserver text最大长度_1156. 单字符重复子串的最大长度
1156. 单字符重复子串的最大长度 这道题测试用例都比较简单,用暴力也可以过. 遍历text字符串,假设当前遍历下标为i,我们匹配text[i]这个字符,向右遍历找到第一个不是text[i]的字符b ...
- LeetCode 1156. 单字符重复子串的最大长度
文章目录 1. 题目 2. 解题 1. 题目 如果字符串中的所有字符都相同,那么这个字符串是单字符重复的字符串. 给你一个字符串 text,你只能交换其中两个字符一次或者什么都不做,然后得到一些单字符 ...
- POJ3693 Maximum repetition substring
题目 The repetition number of a string is defined as the maximum number R such that the string can be ...
- Java构造字符串算法题_LeetCode算法题-Repeated Substring Pattern(Java实现)
这是悦乐书的第236次更新,第249篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第103题(顺位题号是459).给定非空字符串检查是否可以通过获取它的子字符串并将子字符 ...
- 【LeetCode题解-005】longest Palindrome Substring
题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum le ...
- R语言单因素重复测量方差分析(one-way repeated measures ANOVA)实战
R语言单因素重复测量方差分析(one-way repeated measures ANOVA)实战 目录 R语言单因素重复测量方差分析(one-way repeated measures ANOVA) ...
- leetcode(5)—— Longest Palindromic Substring(最长回文子串)
longest-palindromic-substring 法1:暴力搜索(但会超时) 遍历全部子串(n+(n−1)+-+1=n(1+n)2n+(n-1)+\ldots+1=\frac{n(1+n)} ...
- 【重点】LeetCode 124. Binary Tree Maximum Path Sum
LeetCode 124. Binary Tree Maximum Path Sum 参考链接:http://zxi.mytechroad.com/blog/tree/leetcode-124-bin ...
- 【重点】LeetCode 24. Swap Nodes in Pairs
LeetCode 24. Swap Nodes in Pairs 参考网址:http://www.cnblogs.com/grandyang/p/4441680.html 此题算是链表中比较考察细节的 ...
最新文章
- 物理学在计算机领域的应用,物理学在计算机中的应用.doc
- updatehf.vbs:自动打补丁
- 剖析云计算中的“共享型数据库”(转载)
- 知识图谱构建技术初探
- 推荐.NET CF控件(Resco MobileForms Toolkit)
- [c#]Dll自定义目录
- 非替换元素和替换元素
- 线性表--算法设计题2.23
- Tricks(七)——list of lists 行和、列和的计算
- 如何用Python脚本从文件读取数据?
- 天线发射功率计算公式_天线增益的定义/计算公式/发射功率
- vin码识别(车架号识别)的工具
- 终极卸载PC奇安信天擎
- Pr 视频效果:扭曲
- 【行业案例】域乎科技:“数”写长三角一体化的加速度——域乎科技链接未来,做数字时代的奠基人(智慧上海2020总第24篇)
- 逗号表达式--------问号表达式
- 达梦数据交换平台软件DMETL部署
- js处理本地.bin音频文件和node.js的fs模块处理本地.bin音频区别
- 简述企业信息化的主要工作内容
- Android读取程序中文件
热门文章
- CV Code | 本周新出计算机视觉开源代码汇总(含实例分割、行人检测、姿态估计、神经架构搜索、超分辨率等)...
- OpenCV多目标跟踪与视频分析
- 【新手答疑】很迷茫,次世代角色建模我该怎么学习?需要掌握哪些技术?
- 论文审稿意见太奇葩?NeurIPS 2021
- Python的类示例
- android 协程,Android 上的 Kotlin 协程
- 清华源离线安装pytorch_【Pytorch】pytorch安装的时候下载不动
- Cocos2d手机游戏引擎介绍
- toughradius 配置mysql_ToughRADIUS 安装进阶篇
- socket编程实例_NIO之网络编程源码阅读