2023年蓝桥杯C++A组第三题:更小的数(双指针解法)

devtools/2025/1/16 15:45:32/

 题目描述


小蓝有一个长度均为 n 且仅由数字字符 0 ∼ 9 组成的字符串,下标从 0 到 n − 1,你可以将其视作是一个具有 n 位的十进制数字 num,小蓝可以从 num 中选出一段连续的子串并将子串进行反转,最多反转一次。小蓝想要将选出的子串进行反转后再放入原位置处得到的新的数字 numnew 满足条件 numnew < num,请你帮他计算下一共有多少种不同的子串选择方案,只要两个子串在 num 中的位置不完全相同我们就视作是不同的方案。

注意,我们允许前导零的存在,即数字的最高位可以是 0 ,这是合法的。

解题思路

考虑将字符串用两层循环进行遍历,对于每一个子串,判断两头的数字大小,若右边比左边小,即为满足题意的子串,若右边和左边相等,则用双指针不断向中间靠拢进行比较,直到右边比左边小则方案加一或右边比左边大则该子串反转不满足题意。

附代码

#include<bits/stdc++.h>
using namespace std;
int main() {string str;cin >> str;int count = 0;for (int i = 0; i < str.length(); i++) {for (int j = i + 1; j < str.length(); j++) {int l = i, r = j;while (l<r) {if (str[r] < str[l]){count++; break;}else if (str[r] > str[l])break;else {l++;r--;}}}}cout << count;return 0;
}


http://www.ppmy.cn/devtools/26478.html

相关文章

品牌百度百科词条需要什么资料?

品牌百度百科词条是一个品牌的数字化名片&#xff0c;更是品牌历史、文化、实力的全面展现。 作为一个相当拿得出手的镀金名片&#xff0c;品牌百度百科词条创建需要什么资料&#xff0c;今天伯乐网络传媒就来给大家讲解一下。 一、品牌基本信息&#xff1a;品牌身份的明确 品…

高校宿舍管理

在高等教育的迅猛发展浪潮中&#xff0c;大学校园正经历着前所未有的变革。随着招生规模的不断扩大&#xff0c;学生宿舍管理工作变得日益繁重和复杂。传统的管理方法&#xff0c;如使用Word和Excel进行数据记录和整理&#xff0c;已经无法满足现代高效、精准的管理需求。此外&…

设计模式第二次测试 | 数据库连接池设计(原型模式、创建者模式、适配器模式)

需求中文如下&#xff1a;原本是英文&#xff0c;用百度翻译转换而来 我们需要设计一个工具&#xff0c;它负责创建一个与数据库软件MySQL的连接池。 连接池中有数百个连接可供客户端使用。 所有连接对象都有相同的内容&#xff0c;但它们是不同的对象。 连接对象的创建是资源密…

516. 最长回文子序列

516. 最长回文子序列 题目链接&#xff1a;516. 最长回文子序列 代码如下&#xff1a; class Solution { public:int longestPalindromeSubseq(string s) {//dp[i][j]:字符串s在[i,j]范围内最长的回文子序列的长度为dp[i][j]vector<vector<int>> dp(s.size(),ve…

Linux:在线扩容

目录 项目场景 所需技术 操作步骤 Ⅰ&#xff1a;查看pv&#xff08;物理卷&#xff09;、vg&#xff08;卷组&#xff09;大小是否还够扩容 Ⅱ&#xff1a;vda磁盘新增分区vda3 Ⅲ&#xff1a;pv&#xff08;逻辑卷&#xff09;扩容 Ⅳ&#xff1a;vg&#xff08;卷组&…

写一个简单的程序

思路分析&#xff1a; 1. 导入必要的库 首先&#xff0c;确保你的项目中包含了AWT或Swing库&#xff0c;因为我们将使用它们来创建图形界面。 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import j…

爬取B站评论:Python技术实现详解

引言 在当今信息爆炸的互联网时代&#xff0c;用户生成的内容不断涌现&#xff0c;其中包括了各种各样的评论。而B站作为一个充满活力的视频分享平台&#xff0c;其评论区更是一个充满了各种各样精彩评论的宝藏地。那么&#xff0c;有没有一种简单的方法可以将这些评论收集起来…

C语言-嵌入式-STM32:FreeRTOS说明和详解

Free即免费的&#xff0c;RTOS的全称是Real time operating system&#xff0c;中文就是实时操作系统。 注意&#xff1a;RTOS不是指某一个确定的系统&#xff0c;而是指一类操作系统。比如&#xff1a;uc/OS&#xff0c;FreeRTOS&#xff0c;RTX&#xff0c;RT-Thread 等这些都…