题意 :

  • 给一字符串,问能否删除若干个同一个字符使得其成为回文串,不能则输出-1,能则输出最少方案

思路 :

  • 模拟,枚举删除每个出现过的字母,然后双指针一最左一最右,当指针所指两个字母相等,都前进;当不相等,但其中一个等于要删除的字母,说明这个位置应删除;当不相等,且都不等于要删除的字母,说明方案不可行
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <unordered_set>using namespace std;typedef long long ll;int n;
string str;int check(char wo)
{int i = 0, j = n - 1;int cnt = 0;while (i < j){if (str[i] == str[j]) i ++ , j -- ;else if (str[i] == wo) cnt ++ , i ++ ;else if (str[j] == wo) cnt ++ , j -- ;else return 1e9;}return cnt;
}int main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int _;cin >> _;while (_ -- ){cin >> n >> str;unordered_set<char> se;int mi = 1e9;for (int i = 0; i < str.size(); i ++ )se.insert(str[i]);for (auto wo : se)mi = min(mi, check(wo));cout << (mi == 1e9 ? -1 : mi) << endl;}return 0;
}

Grandma Capa Knits a Scarf 模拟,字符串相关推荐

  1. 【想破脑袋的题】C. Grandma Capa Knits a Scarf

    题目来源:Problem - C - CodeforcesCodeforces. Programming competitions and contests, programming communit ...

  2. [模拟|字符串] leetcode 6 Z字形变换

    [模拟|字符串] leetcode 6 Z字形变换 1.题目 题目链接 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHI ...

  3. TZOJ 4865 统计单词数(模拟字符串)

    描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的 ...

  4. 1082 Read Number in Chinese (25 分)【难 / 模拟 字符串】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805385053978624 写的太垃圾,不想详细说,等有时间再写一个简洁 ...

  5. Mocha and Red and Blue 模拟字符串

    题意 : 由'?' 'B' 'R'组成的字符串,将所有'?'变成'B'或者'R',要求出现'BB'和'RR'数量最少,求最终字符串. 思路 : 找到第一个不是'?'的字符(这里有一个注意点,全是'?' ...

  6. [模拟字符串] [洛谷] P2788 数学1(math1)- 加减算式

    水题一道 也是第一篇博客  欢迎大牛来喷 思路非常简单 把字符串拆为单个数字 譬如算式1+2-3+1998可以拆为1,+2,-3,+1998 将各个数字单独转换为int型 最后求和 #include ...

  7. 1060 Are They Equal (25 分)【难度: 一般 / 知识点: 模拟 字符串处理】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805413520719872 细节很多,需要注意一下几个情况: 12345 ...

  8. Codeforces Round #750 (Div. 2) a-d

    Codeforces Round #750 A. Luntik and Concerts B. Luntik and Subsequences C. Grandma Capa Knits a Scar ...

  9. Codeforces Round #750 (Div. 2)

    ):稍微补一下. A. Luntik and Concerts void solve(){int a,b,c;scanf("%d%d%d",&a,&b,&c ...

最新文章

  1. 简单实现ReplaceAll(转)
  2. 给电脑换源 npm 国内镜像 cnpm
  3. seaborn.distplot()
  4. android123 zhihuibeijing 新闻中心-新闻 页签 ViewPagerIndicator实现
  5. 【aviator】aviator 报错 Syntax error:Unexpect token 'OR' Parsing expression
  6. java的程序编码,JAVA编码转换的详细过程
  7. 俊杰隐藏文件程序源码分享 C#
  8. 在线class文件反编译java
  9. win8 机器硬盘异响
  10. 4.2.4 图像色调处理
  11. Least Crucial Node UVALive - 7456 【】
  12. 【图像超分辨率重建】——RCAN论文精读笔记
  13. 大学英语(第四册)复习(原文及全文翻译)——Unit 10 - Why People Work(人为什么工作)
  14. 高通WLAN框架学习(8)- - Legacy fast roaming(传统快速漫游)
  15. linux load average,Linux 平均负载 Load Average 详解
  16. Unity实现模型点击
  17. java读取通达信day_Go读取通达信历史日线数据
  18. 部署Zabbix监控平台,配置及使用Zabbix监控系统,自定义Zabbix监控项目
  19. 大数据学习指南从入门到精通
  20. PVCBOT【14号A版】机械狗--四足爬行机器人

热门文章

  1. Smartforms 设置纸张打印格式
  2. ABAP delete的用法
  3. 会计科目****不能使用(请更正)
  4. BCS和ECCS等合并系统简单对比
  5. Windows基础题目
  6. alv tree 总结
  7. ABAP OO小例子
  8. 多语种下的卡萨帝故事
  9. 魔幻的“净醛产品”:宜家被罚“亡羊”,欧派用视频“补牢”?
  10. java项目大小_Java项目仅在调整窗口大小之后出现