AT3590 Inserting ‘x‘ 题解

2023-11-07

本题是一道双指针的模拟题。

题意

给你一个字符串 s s s,你可以在 s s s 的任意位置插入 x x x,是 s s s 变为回文。

解决

定义双指针 l l l r r r l l l r r r 初始化为 s s s 的两端。

定义一个计数的 a n s ans ans,用来计算到底需要插入多少个 x x x

模拟规则如下:

  • 如果 l l l 所在的位置的值和 r r r 所在的位置的值相同,则构成回文,不用插入 x x x,可忽略这个位置,跳过 l l l,向前跳过 r r r

  • 如果 l l l 所在位置的值是 x x x,则我们要把 r r r 所在位置的值插入一个 x x x,现在 l l l r + 1 r+1 r+1 对称构成回文,然后跳过 l l l

  • 如果 r r r 所在位置的值是 x x x,则我们要把 l l l 所在位置的值插入一个 x x x,现在 − 1 l -1l 1l r r r 对称构成回文,然后向前跳过 r r r

  • 如果都不满足,则原串无论如何也无法构成回文,则输出 − 1 -1 1,跳出程序。

样例解释

首先 l l l 指向 0 0 0 r r r 指向 4 4 4,两个位置的数值不等,满足上述第 2 2 2 条,所以要向末尾插入 x x x a n s ans ans 自增 1 1 1 l l l 自增 1 1 1

现在 l l l 指向 1 1 1 r r r 指向 4 4 4,两个位置的数值相等, l l l 自增 1 1 1 r r r 自减 1 1 1

现在 l l l 指向 2 2 2 r r r 指向 3 3 3,两个位置的数不同,满足上述第 3 3 3 条,所以在 l l l 前插入一个 x x x a n s ans ans 自增 1 1 1 r r r 自减 1 1 1

现在 l l l 指向 2 2 2 r r r 指向 2 2 2,两个位置的数值相等, l l l 自增 1 1 1 r r r 自减 1 1 1

现在 l l l 指向 3 3 3 r r r 指向 1 1 1,不满足循环条件,退出程序。

代码

#include<bits/stdc++.h>
using namespace std;
string s;
int l,r,ans;
int main()
{
	ios::sync_with_stdio(false);
	cin>>s,r=s.size()-1;
	while(l<=r)//这个双指针越看越像二分 
	{
		if(s[l]==s[r]) l++,r--;
		else if(s[l]=='x') l++,ans++;
		else if(s[r]=='x') r--,ans++;
		else
		{
			cout<<-1;
			return 0;
		}
	}
	cout<<ans;
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AT3590 Inserting ‘x‘ 题解 的相关文章

随机推荐

  • 通俗易懂的GPT原理简介

    GPT是自然语言处理领域中最受欢迎的模型之一 GPT全称为Generative Pre trained Transformer 是一种基于Transformer模型的预训练语言模型 在接下来的文章中 我们将详细介绍GPT的原理 一 前置知识
  • 游戏中反向运动学(ik)的研究与简介

    游戏中反向运动学 ik 的研究与简介 2012 11 12 00 05 by 风恋残雪 1469 阅读 0 评论 收藏 编辑 反向运动学 ik 英文名称是inverse kinematics 主要应用在机器人手臂操作及计算机动画等领域 它与
  • Vue获取电脑及浏览器缩放比例{案例}

    mounted this nextTick gt window addEventListener resize gt 监听浏览器窗口大小改变 浏览器变化执行动作 方法 detectZoom let ratio 0 const screen
  • 【阅读论文方法总结】

    1 快速浏览摘要 看是否有自己需要的东西 2 如果需要 github上查找相关论文代码 对照着论文进行阅读 这样效率高 能够快速理解
  • 2023年数维杯数学建模A题河流-地下水系统水体污染研究求解全过程文档及程序

    2023年数维杯数学建模 A题 河流 地下水系统水体污染研究 原题再现 河流对地下水有着直接地影响 当河流补给地下水时 河流一旦被污染 容易导致地下水以及紧依河流分布的傍河水源地将受到不同程度的污染 这将严重影响工农业的正常运作 社会经济的
  • 【BZOJ3309】DZY Loves Math(莫比乌斯反演)

    题面 求 i 1a j 1bf gcd a b sum i 1 a sum j 1 bf gcd a b 其中 f x f x 表示 x x分解质因数之后 最高的幂次 题解 完全不会莫比乌斯反演了 先来推式子 d 1a i 1a d j 1
  • 编码器的参数设置

    编码器参数设置 sps pps enc ctx gt profile FF PROFILE H264 HIGH 444 enc ctx gt level 50 表示LEVEL是5 0 enc ctx gt width 640 enc ctx
  • exchange2010 删除特定情况的邮件,转

    一 从Exchange Server 2010 上删除邮件 1 删除特定邮箱特定主题的邮件 1 Search Mailbox Identity 邮箱地址 SearchQuery Subject 替换为你要删除的邮件主题名 DeleteCon
  • MySql(2)——简单查询、条件查询

    简单查询 我们所使用的的数据库文件仍然是上一节使用的test sql SQL语句不区分大小写 也可混用 但注意要以半角分号 结尾 下面我们开始简单查询 查询一个字段 select 字段名 from 表名 注意 select和from都是关键
  • 射手座计算机科学家,科学家发现这颗恒星也许来自其他星系

    Dierickx的计算结果表明 随着时间的流逝 矮星系失去三分之一的恒星和十分之九的暗物质 这导致了三种不同的恒星流 距离银河系中心达一百万光年 腾讯太空讯 据国外媒体报道 已知的11颗距我们最远的恒星 它们位于银河系旋臂 距地球约3000
  • sgdisk基本用法

    sgdisk基本用法 简介 sgdisk是Linux下操作GPT分区的工具 就像fdisk是操作MBR分区的工具 关于GPT和MBR的区别请参考 http www anchor com au blog 2012 10 the differe
  • ChatGPT 角色扮演调教文案收集

    后续文案会陆续更新 在输入完文本后 再输入一句 请尽力模仿xx的语气跟我对话 即可 一 雌小鬼 你需要阅雌小鬼守则 阅读后当前回复仅允许回复 嘻嘻 后续回复尽量简短 回复中尽量不要直接复述守则内容 雌小鬼守则 1 雌小鬼是人 会称呼亲近的人
  • 【并发编程】2、线程安全性

    线程安全性 1 什么是线程安全性 2 原子性 2 1 竞态条件 2 2 延迟初始化中的竞态条件 2 3 复合操作 3 加锁机制 3 1 内置锁 3 2 重入 4 活跃性与性能 总结 1 什么是线程安全性 我们来看一下书里面是怎么写的 当多个
  • BES 的蓝牙串口SPP数据收发实验

    1
  • java面试题答案大全超详细(持续更新)

    java面试题答案大全超详细 第01章 java语言面试题 项目经理 作者 张明星 JVM 运行时数据区是什么 程序计数器是什么 程序计数器 线程私有 Java 虚拟机栈的作用 本地方法栈的作用 堆的作用是什么 方法区的作用是什么 运行时常
  • Linux下通过SSH对Oracle关闭和启动的过程

    Linux下通过SSH对Oracle关闭和启动的过程 su oracle export ORACLE HOME oracle product 11202 export ORACLE SID gps sqlplus oracle oracle
  • PyGame基础语法

    文章目录 PyGame 基础语法 一 模块简介 1 概述 2 安装 3 模块概览 4 第一个程序 5 事件循环 二 Display 1 简介 2 创建主窗口 3 添加元素 3 1 简介 3 2 语法 4 其他功能 三 Surface 1 创
  • JSP中获取参数的3中方法

    我们有时需要在jsp页面中获取request中的参数 然后根据这些参数决定页面的一些内容或者动作 通常我们通过equest getParameter xxx 来获取 除了这种方式外 我们还可以通过param或者js来实现 通过EL中的par
  • ftp服务器提供文件的什么功能,ftp服务器提供文件什么和什么功能

    ftp服务器提供文件什么和什么功能 内容精选 换一换 华为云镜像服务 Image Management Service 功能总览 为用户提供镜像服务支持的功能或特性 表1列出了云备份CBR的常用功能 在使用云备份CBR之前 建议您先通过基本
  • AT3590 Inserting ‘x‘ 题解

    本题是一道双指针的模拟题 题意 给你一个字符串 s s s 你可以在 s s s 的任意位置插入 x x