当前位置: 首页 > news >正文

蓝桥杯 回文字符串

问题描述

小蓝最近迷上了回文字符串,他有一个只包含小写字母的字符串 S,小蓝可以往字符串 S 的开头处加入任意数目个指定字符:lqb(它们的 ASCII 码分别为:10811398)。

小蓝想要知道他是否能通过这种方式把字符串 S 转化为一个回文字符串。


样例输入

3
gmgqlq
pdlbll
aaa

样例输出

Yes
No
Yes

样例说明

  • 对于 gmgqlq,可以在前面加上 qlq,使其变为回文字符串:qlqgmgqlq
  • 对于 pdlbll,无法转化为回文字符串。
  • 对于 aaa,本身就是一个回文字符串。

评测用例规模与约定

  • 对于 50% 的评测用例,1 ≤ |S| ≤ 1000,其中 |S| 表示字符串 S 的长度;
  • 对于所有评测用例,1 ≤ T ≤ 101 ≤ Σ|S| ≤ 10^6,即所有字符串的总长度不超过 10^6。

c++代码

#include<bits/stdc++.h>

using namespace std;

int T;
string s;

bool ishui(string str) {
    int left = 0, right = str.size() - 1;
    while(right > left) {
        if (str[left] != str[right]) return false;
        left++;
        right--;
    }
    return true;
}

int main() {
    cin >> T;
    while(T--) {
        cin >> s;
        while(true) {
            if (ishui(s)) {
                cout << "Yes" << endl;
                break;
            }
            if (!(s.back() == 'q' || s.back() == 'l' || s.back() == 'b')) {
                cout << "No" << endl;
                break;
            }
            s.erase(s.size() - 1);
        }
    }
}//by wqs

思路解析

实在没想到,这道题目暴力也能过

我还在想怎么优化,结果直接满分了。

就是不断判断是不是回文

如果是回文输出YES

如果不是

看字符串的末尾,

如果不是qlb,直接输出No

如果是q,l,b说明可以在前面加q,l,b使得它有可能回文,我只要判断中间这一段是否回文就行,所以我把末尾这一个删除,判断下一个字符串是不是回文。例如字符串pdlbll,最后一个字符串是l,我可以变成lpdlbll,我只要判断pdlbl是不是回文,接着我可以变成lpdlbl,我只要判断pdlb是不是回文,以此类推。

http://www.dtcms.com/a/91380.html

相关文章:

  • 09_JavaScript数据操作方法_数组2
  • 基于Zookeeper的微服务配置管理与灰度发布实战指南
  • WEB API 设计规范
  • Leetcode——1047. 删除字符串中的所有相邻重复项
  • 阶跃星辰开源300亿参数视频模型Step-Video-TI2V:运动可控+102帧长视频生成
  • Hyperlane 似乎是一个轻量级、高性能的 Rust HTTP 服务器库
  • Redis原理:Monitor 实现
  • 雕马快租:直播设备租赁新趋势,低成本重构传统营销模式的破局之道
  • 缓存相关问题
  • 单例模式在Python中的实现和应用
  • 【SpringBoot篇】SpringBoot的自动装配原理
  • 安装SQL Server 2022常见问题和环境配置
  • http://noi.openjudge.cn——4.7算法之搜索_1814:恼人的青蛙
  • unable to load vboxguest kernel module
  • Redis 核心源码解析:从设计哲学到企业级应用实践
  • Triformer:长序列多变量时间序列预测
  • 记录一次部署k3s后,服务404 page not found,nginx显示正常
  • PL/SQL语言的字符串处理
  • VUE项目初始化
  • 深入理解Golang标准库`testing/fstest`包的用法和技巧进行文件系统测试
  • 【Git】用Git命令克隆一个远程仓库、修改仓库中的文件,并将更改推送到远程仓库
  • Kotlin 协程官方文档知识汇总(一)
  • 基本数据操作关于torch
  • 【读点论文】面向识别的长弯曲文本预处理算法,有点局限
  • Java 字符流全解析:核心类实战指南
  • SpringBoot 启动优化 问题
  • 什么是Java序列化?什么情况下需要使用序列化
  • 5. 实现一个中间件
  • S7-1200对V90 PN进行位置控制的三种方法
  • 新能源行业:卓越 UE/UI 设计,引领业务腾飞的新引擎