Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode meituan-006. 小团的神秘暗号

LeetCode meituan-006. 小团的神秘暗号

作者头像
Michael阿明
发布于 2021-09-06 03:40:27
发布于 2021-09-06 03:40:27
25500
代码可运行
举报
运行总次数:0
代码可运行

文章目录

1. 题目

小团深谙保密工作的重要性,因此在某些明文的传输中会使用一种加密策略,小团如果需要传输一个字符串 S ,则他会为这个字符串添加一个头部字符串和一个尾部字符串。

头部字符串满足至少包含一个 “MT” 子序列,且以 T 结尾。 尾部字符串需要满足至少包含一个 “MT” 子序列,且以 M 开头。

例如 AAAMT 和 MAAAT 都是一个合法的头部字符串,而 MTAAA 就不是合法的头部字符串。 很显然这样的头尾字符串并不一定是唯一的,因此我们还有一个约束,就是 S 是满足头尾字符串合法的情况下的最长的字符串。 很显然这样的加密策略是支持解码的,给出一个加密后的字符串,请你找出中间被加密的字符串 S 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式:

输入:
- 输入第一行是一个正整数 n ,表示加密后的字符串总长度。
- 输入第二行是一个长度为 n 的仅由大写字母组成的字符串 T 。
输出:
- 输出仅包含一个字符串 S 。

示例:
输入:
     10
     MMATSATMMT
输出:SATM

提示:
1 <= n <= 100000
请注意,本题需要自行编写「标准输入」和「标准输出」逻辑,
以及自行 import/include 需要的 library

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/z3XKBp 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 贪心,找最短的前后缀,正向找到一次MT,反向找到一次TM
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    string s;
    cin >> n;
    cin >> s;
    bool m = false, t = false;
    int i = 0, j = s.size()-1;
    for( ; i < s.size(); ++i)
    {
        if(s[i]=='M' && !m)
            m = true;
        else if(s[i]=='T' && m)
        {
            i++;
            break;
        }
    }
    for( ; j >= 0; --j)
    {
        if(s[j]=='T' && !t)
            t = true;
        else if(s[j]=='M' && t)
            break;
    }
    cout << s.substr(i, j-i);
    return 0;
}

0 ms 3.6 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 1297. 子串的最大出现次数
给你一个字符串 s ,请你返回满足以下条件且出现次数最大的 任意 子串的出现次数:
Michael阿明
2020/07/13
6910
☆打卡算法☆LeetCode 97、交错字符串 算法解析
链接:97. 交错字符串 - 力扣(LeetCode) (leetcode-cn.com)
恬静的小魔龙
2022/08/07
2970
☆打卡算法☆LeetCode 97、交错字符串  算法解析
LeetCode meituan-001. 小美的用户名
小美是美团的前端工程师,为了防止系统被恶意攻击,小美必须要在用户输入用户名之前做一个合法性检查,一个合法的用户名必须满足以下几个要求:
Michael阿明
2021/09/06
2910
LeetCode 522. 最长特殊序列 II
给定字符串列表,你需要从它们中找出最长的特殊序列。 最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。
Michael阿明
2020/07/13
5290
LeetCode 522. 最长特殊序列 II
LeetCode 2002. 两个回文子序列长度的最大乘积(状态压缩+枚举状态子集+预处理)
给你一个字符串 s ,请你找到 s 中两个 不相交回文子序列 ,使得它们长度的 乘积最大 。 两个子序列在原字符串中如果没有任何相同下标的字符,则它们是 不相交 的。
Michael阿明
2022/01/07
4260
LeetCode 2002. 两个回文子序列长度的最大乘积(状态压缩+枚举状态子集+预处理)
LeetCode 1638. 统计只差一个字符的子串数目(DP)
给你两个字符串 s 和 t ,请你找出 s 中的非空子串的数目,这些子串满足替换 一个不同字符 以后,是 t 串的子串。 换言之,请你找到 s 和 t 串中 恰好 只有一个字符不同的子字符串对的数目。
Michael阿明
2021/02/19
5190
LeetCode 1216. 验证回文字符串 III(DP)
给出一个字符串 s 和一个整数 k,请你帮忙判断这个字符串是不是一个「K 回文」。
Michael阿明
2021/02/19
7530
LeetCode 647. 回文子串(DP/中心扩展)
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。
Michael阿明
2020/07/13
6070
LeetCode 44. 通配符匹配(DP)
1. 题目 给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。 '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。 两个字符串
Michael阿明
2020/07/13
6490
LeetCode 940. 不同的子序列 II(动态规划)
文章目录 1. 题目 2. 解题 1. 题目 给定一个字符串 S,计算 S 的不同非空子序列的个数。 因为结果可能很大,所以返回答案模 10^9 + 7. 示例 1: 输入:"abc" 输出:7 解释:7 个不同的子序列分别是 "a", "b", "c", "ab", "ac", "bc", 以及 "abc"。 示例 2: 输入:"aba" 输出:6 解释:6 个不同的子序列分别是 "a", "b", "ab", "ba", "aa" 以及 "aba"。 示例 3: 输入:"aaa" 输出:3 解释:
Michael阿明
2021/02/19
3540
LeetCode 115. 不同的子序列(DP)
一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)
Michael阿明
2021/02/19
3560
【CPP】《程序员面试金典》习题(1)——数组与字符串
意识到该刷刷算法题的自己,面临压力自然想到LeetCode,但是面对和LeetCode那数千道题,时间有限下自然要更有针对性些,自然就看到《程序员面试金典》。
ZifengHuang
2020/07/29
1.1K0
LeetCode 664. 奇怪的打印机(区间DP)
我的CSDN博客地址 https://michael.blog.csdn.net/
Michael阿明
2021/09/06
2690
c++ LeetCode (初级字符串篇) 九道算法例题代码详解(二)
原文链接:https://www.cnblogs.com/DOMLX/p/11089327.html
徐飞机
2019/07/01
1.2K0
LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)
1. 题目 给定两个字符串 s 和 t,判断他们的编辑距离是否为 1。 注意: 满足编辑距离等于 1 有三种可能的情形: 往 s 中插入一个字符得到 t 从 s 中删除一个字符得到 t 在 s 中替换一个字符得到 t 示例 1: 输入: s = "ab", t = "acb" 输出: true 解释: 可以将 'c' 插入字符串 s 来得到 t。 示例 2: 输入: s = "cab", t = "ad" 输出: false 解释: 无法通过 1 步操作使 s 变为 t。 示例 3: 输入: s =
Michael阿明
2020/07/13
8650
LeetCode 516. 最长回文子序列(动态规划)
1. 题目 给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bbbb"。 示例 2: 输入: "cbbd" 输出: 2 一个可能的最长回文子序列为 "bb"。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2020/07/13
6240
LeetCode 516. 最长回文子序列(动态规划)
LeetCode 1332. 删除回文子序列
给你一个字符串 s,它仅由字母 ‘a’ 和 ‘b’ 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。
Michael阿明
2020/07/13
7260
LeetCode 1332. 删除回文子序列
Leetcode | 第C节:字符串综合题(2)
东京奥运会圆满收官!当然我自己也将迎来留学前的最后准备,所以更新速度可能还是会比较慢……但还好,大部分的内容都已经在之前写的差不多了,也希望最后这几篇我也能够尽快更完,当然也希望大家可以谅解~
学弱猹
2021/09/07
7470
LeetCode 第 32 场双周赛(983/2957,前33.2%)
全国排名: 983 / 2957,33.2%;全球排名: 2962 / 10463,28.3%
Michael阿明
2021/02/19
3620
LeetCode 1781. 所有子字符串美丽值之和
比方说,"abaacc" 的美丽值为 3 - 1 = 2 。 给你一个字符串 s ,请你返回它所有子字符串的 美丽值 之和。
Michael阿明
2021/09/06
5020
推荐阅读
相关推荐
LeetCode 1297. 子串的最大出现次数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档