因为只能交换一次,先考虑如果不交换最大的值。

接下来考虑交换,有四种情况

① 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(单字符重复子串的最大长度)相关推荐

  1. sqlserver text最大长度_1156. 单字符重复子串的最大长度

    1156. 单字符重复子串的最大长度 这道题测试用例都比较简单,用暴力也可以过. 遍历text字符串,假设当前遍历下标为i,我们匹配text[i]这个字符,向右遍历找到第一个不是text[i]的字符b ...

  2. LeetCode 1156. 单字符重复子串的最大长度

    文章目录 1. 题目 2. 解题 1. 题目 如果字符串中的所有字符都相同,那么这个字符串是单字符重复的字符串. 给你一个字符串 text,你只能交换其中两个字符一次或者什么都不做,然后得到一些单字符 ...

  3. POJ3693 Maximum repetition substring

    题目 The repetition number of a string is defined as the maximum number R such that the string can be ...

  4. Java构造字符串算法题_LeetCode算法题-Repeated Substring Pattern(Java实现)

    这是悦乐书的第236次更新,第249篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第103题(顺位题号是459).给定非空字符串检查是否可以通过获取它的子字符串并将子字符 ...

  5. 【LeetCode题解-005】longest Palindrome Substring

    题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum le ...

  6. R语言单因素重复测量方差分析(one-way repeated measures ANOVA)实战

    R语言单因素重复测量方差分析(one-way repeated measures ANOVA)实战 目录 R语言单因素重复测量方差分析(one-way repeated measures ANOVA) ...

  7. 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)} ...

  8. 【重点】LeetCode 124. Binary Tree Maximum Path Sum

    LeetCode 124. Binary Tree Maximum Path Sum 参考链接:http://zxi.mytechroad.com/blog/tree/leetcode-124-bin ...

  9. 【重点】LeetCode 24. Swap Nodes in Pairs

    LeetCode 24. Swap Nodes in Pairs 参考网址:http://www.cnblogs.com/grandyang/p/4441680.html 此题算是链表中比较考察细节的 ...

最新文章

  1. 物理学在计算机领域的应用,物理学在计算机中的应用.doc
  2. updatehf.vbs:自动打补丁
  3. 剖析云计算中的“共享型数据库”(转载)
  4. 知识图谱构建技术初探
  5. 推荐.NET CF控件(Resco MobileForms Toolkit)
  6. [c#]Dll自定义目录
  7. 非替换元素和替换元素
  8. 线性表--算法设计题2.23
  9. Tricks(七)——list of lists 行和、列和的计算
  10. 如何用Python脚本从文件读取数据?
  11. 天线发射功率计算公式_天线增益的定义/计算公式/发射功率
  12. vin码识别(车架号识别)的工具
  13. 终极卸载PC奇安信天擎
  14. Pr 视频效果:扭曲
  15. 【行业案例】域乎科技:“数”写长三角一体化的加速度——域乎科技链接未来,做数字时代的奠基人(智慧上海2020总第24篇)
  16. 逗号表达式--------问号表达式
  17. 达梦数据交换平台软件DMETL部署
  18. js处理本地.bin音频文件和node.js的fs模块处理本地.bin音频区别
  19. 简述企业信息化的主要工作内容
  20. Android读取程序中文件

热门文章

  1. CV Code | 本周新出计算机视觉开源代码汇总(含实例分割、行人检测、姿态估计、神经架构搜索、超分辨率等)...
  2. OpenCV多目标跟踪与视频分析
  3. 【新手答疑】很迷茫,次世代角色建模我该怎么学习?需要掌握哪些技术?
  4. 论文审稿意见太奇葩?NeurIPS 2021
  5. Python的类示例
  6. android 协程,Android 上的 Kotlin 协程
  7. 清华源离线安装pytorch_【Pytorch】pytorch安装的时候下载不动
  8. Cocos2d手机游戏引擎介绍
  9. toughradius 配置mysql_ToughRADIUS 安装进阶篇
  10. socket编程实例_NIO之网络编程源码阅读