Grandma Capa Knits a Scarf 模拟,字符串
题意 :
- 给一字符串,问能否删除若干个同一个字符使得其成为回文串,不能则输出-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 模拟,字符串相关推荐
- 【想破脑袋的题】C. Grandma Capa Knits a Scarf
题目来源:Problem - C - CodeforcesCodeforces. Programming competitions and contests, programming communit ...
- [模拟|字符串] leetcode 6 Z字形变换
[模拟|字符串] leetcode 6 Z字形变换 1.题目 题目链接 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHI ...
- TZOJ 4865 统计单词数(模拟字符串)
描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的 ...
- 1082 Read Number in Chinese (25 分)【难 / 模拟 字符串】
https://pintia.cn/problem-sets/994805342720868352/problems/994805385053978624 写的太垃圾,不想详细说,等有时间再写一个简洁 ...
- Mocha and Red and Blue 模拟字符串
题意 : 由'?' 'B' 'R'组成的字符串,将所有'?'变成'B'或者'R',要求出现'BB'和'RR'数量最少,求最终字符串. 思路 : 找到第一个不是'?'的字符(这里有一个注意点,全是'?' ...
- [模拟字符串] [洛谷] P2788 数学1(math1)- 加减算式
水题一道 也是第一篇博客 欢迎大牛来喷 思路非常简单 把字符串拆为单个数字 譬如算式1+2-3+1998可以拆为1,+2,-3,+1998 将各个数字单独转换为int型 最后求和 #include ...
- 1060 Are They Equal (25 分)【难度: 一般 / 知识点: 模拟 字符串处理】
https://pintia.cn/problem-sets/994805342720868352/problems/994805413520719872 细节很多,需要注意一下几个情况: 12345 ...
- Codeforces Round #750 (Div. 2) a-d
Codeforces Round #750 A. Luntik and Concerts B. Luntik and Subsequences C. Grandma Capa Knits a Scar ...
- Codeforces Round #750 (Div. 2)
):稍微补一下. A. Luntik and Concerts void solve(){int a,b,c;scanf("%d%d%d",&a,&b,&c ...
最新文章
- 简单实现ReplaceAll(转)
- 给电脑换源 npm 国内镜像 cnpm
- seaborn.distplot()
- android123 zhihuibeijing 新闻中心-新闻 页签 ViewPagerIndicator实现
- 【aviator】aviator 报错 Syntax error:Unexpect token 'OR' Parsing expression
- java的程序编码,JAVA编码转换的详细过程
- 俊杰隐藏文件程序源码分享 C#
- 在线class文件反编译java
- win8 机器硬盘异响
- 4.2.4 图像色调处理
- Least Crucial Node UVALive - 7456 【】
- 【图像超分辨率重建】——RCAN论文精读笔记
- 大学英语(第四册)复习(原文及全文翻译)——Unit 10 - Why People Work(人为什么工作)
- 高通WLAN框架学习(8)- - Legacy fast roaming(传统快速漫游)
- linux load average,Linux 平均负载 Load Average 详解
- Unity实现模型点击
- java读取通达信day_Go读取通达信历史日线数据
- 部署Zabbix监控平台,配置及使用Zabbix监控系统,自定义Zabbix监控项目
- 大数据学习指南从入门到精通
- PVCBOT【14号A版】机械狗--四足爬行机器人