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

C. Prepend and Append

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Timur initially had a binary string†† s� (possibly of length 00). He performed the following operation several (possibly zero) times:

  • Add 00 to one end of the string and 11 to the other end of the string. For example, starting from the string 10111011, you can obtain either 010111010111 or 110110110110.

You are given Timur's final string. What is the length of the shortest possible string he could have started with?

†† A binary string is a string (possibly the empty string) whose characters are either 00 or 11.

Input

The first line of the input contains an integer t� (1≤t≤1001≤�≤100) — the number of testcases.

The first line of each test case contains an integer n� (1≤n≤20001≤�≤2000) — the length of Timur's final string.

The second line of each test case contains a string s� of length n� consisting of characters 00 or 11, denoting the final string.

Output

For each test case, output a single nonnegative integer — the shortest possible length of Timur's original string. Note that Timur's original string could have been empty, in which case you should output 00.

Example

input

Copy

 

9

3

100

4

0111

5

10101

6

101010

7

1010110

1

1

2

10

2

11

10

1011011010

output

Copy

1
2
5
0
3
1
0
2
4

Note

In the first test case, the shortest possible string Timur started with is 00, and he performed the following operation: 0→1000→100.

In the second test case, the shortest possible string Timur started with is 1111, and he performed the following operation: 11→011111→0111.

In the third test case, the shortest possible string Timur started with is 1010110101, and he didn't perform any operations.

In the fourth test case, the shortest possible string Timur started with is the empty string (which we denote by ε�), and he performed the following operations: ε→10→0101→101010�→10→0101→101010.

In the fifth test case, the shortest possible string Timur started with is 101101, and he performed the following operations: 101→01011→1010110101→01011→1010110.

解题说明:水题,只需要判断字符串头尾是否一样,如果一样就无法裁剪,否则去除头尾,直到无法找到头尾不一样的情况。

#include <stdio.h>int main()
{int t;scanf("%d", &t);while (t--){int n;scanf("%d", &n);char s[2002];scanf("%s", s);int ans = n;int l = 0, r = n - 1;while (l < r && s[l] != s[r]){ans -= 2;l++;r--;}printf("%d\n", ans);}return 0;
}

相关文章:

C. Prepend and Append

time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Timur initially had a binary string†† s&#xfffd; (possibly of length 00). He performed the following operation several (possibly zero)…...

javassm超市在线配送管理系统

为了解决用户便捷地在网上购物&#xff0c;本文设计和开发了一个超市管理系统。本系统是基于web架构设计&#xff0c;SSM框架 &#xff0c;使用Mysql数据库管理&#xff0c;综合采用JSP模式来完成系统的相关功能。主要实现了管理员与用户的注册与登陆&#xff0c;个人中心、用户…...

Scratch少儿编程案例-多模式贪吃蛇(无尽和计时)

专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...

谷歌蜘蛛池怎么搭建?Google蜘蛛池可以帮助谷歌排名吗?

本文主要分享关于谷歌蜘蛛池的搭建疑问&#xff0c;以及Google对谷歌排名的影响到底有多大。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 谷歌蜘蛛池怎么搭建&#xff1f; 答案是&#xff1a;需要一个内链外链体系复杂的站群系统…...

Kubernetes集群-部署Java项目

Kubernetes集群-部署Java项目&#xff08;SSG&#xff09; k8s部署项目java流程图 第一步 打包制作镜像 打包 java源码&#xff1a; application.properties #在有pom.xml的路径下执行 mvn clean package制作镜像&#xff1a; 将刚才打包后的文件夹传到&#xff0c;装有dock…...

English Learning - Day54 作业打卡 2023.2.8 周三

English Learning - Day54 作业打卡 2023.2.8 周三引言1. 就算你不喜欢喝酒&#xff0c;也请尝一杯吧。2. 便纵有千种风情&#xff0c;更与何人说&#xff1f;——柳永《雨霖铃》 (来&#xff0c;挑战一下古诗词)3. 虽然忙&#xff0c;我也要参加会议。4. 无论发生什么&#xf…...

【Unity题】 1.矩阵旋转,欧拉旋转,四元数旋转各自的优缺点。2.StringBuilder和String的区别

1.矩阵旋转&#xff0c;欧拉旋转&#xff0c;四元数旋转各自的优缺点 矩阵旋转&#xff0c;欧拉旋转&#xff0c;四元数旋转是三种不同的旋转表示方法&#xff0c;下面是它们各自的优缺点&#xff1a; 矩阵旋转&#xff1a; 优点&#xff1a; 1.可以方便地实现复合旋转&…...

【C++面试问答】搞清楚深拷贝与浅拷贝的区别

问题 深拷贝和浅拷贝的区别是面试中的常见问题之一&#xff0c;对于不同的编程语言&#xff0c;这个问题的回答可能稍有差别&#xff0c;下面我们就来探索一下它们之间的异同吧。 先来看看在JavaScript对象的深拷贝与浅拷贝的区别&#xff1a; 浅拷贝&#xff1a;只是复制了…...

day10_面向对象基础

今日内容 零、 复习昨日 一、面向对象的概念 二、面向对象编程 三、内存图 零、 复习昨日 见晨考题 每日一数组题 写一个方法 用于合并两个int类型的数组 合并法则如下 {1,2,5,8,9}{1,3,0}---->{1,2,5,8,9,1,3,0} package com.qf.array;import java.util.Arrays;/*** --- 天…...

电影订票网站的设计与开发

技术&#xff1a;Java、JSP等摘要&#xff1a;随着科技的发展&#xff0c;时代的进步&#xff0c;互联网已经成为了人们生活中不可缺少的一部分&#xff0c;网上购物已然是一种时代的象征。纵观市场&#xff0c;电影行业的发展尤为迅速&#xff0c;电影种类和数量的增多导致客流…...

seata【SAGA模式】代码实践(细节未必完全符合saga的配置,仅参考)

seata SAGA模式&#xff1a; 代码仍然是上一篇AT模式的代码&#xff1a;AT模式 不需要undo_log表 下面开始&#xff1a; 首先&#xff0c;saga模式依靠状态机的json文件来执行整个流程&#xff0c;其中的开始节点的服务即TM&#xff0c;然后状态机需要依靠三张表&#xff0…...

面试题:Java锁机制

java对象包含了三个部分&#xff1a;对象头&#xff0c;实例数据和对齐填充。对象头又存放了&#xff1a;markWord和class point。classpoint &#xff1a;指向方法区&#xff0c;当前对象的类信息数据。markword&#xff1a;存储了很多和当前对象运行时的数据&#xff1a;例如…...

Springboot Web开发

文章目录一. 静态资源访问1. 配置静态资源访问前缀2. 修改默认静态资源存放目录3. Webjars4. 欢迎页支持5. 自定义Favicon二. 请求处理1. 路径变量2. 请求头处理3. 查询字符串处理4. 获取Cookie的值5. 获取请求体的值6. 获取请求域中的数据7. 矩阵变量一. 静态资源访问 只要静…...

分布式事务 | 使用DTM 的Saga 模式

DTM 简介前面章节提及的MassTransit、dotnetcore/CAP都提供了分布式事务的处理能力&#xff0c;但也仅局限于Saga和本地消息表模式的实现。那有没有一个独立的分布式事务解决方案&#xff0c;涵盖多种分布式事务处理模式&#xff0c;如Saga、TCC、XA模式等。有&#xff0c;目前…...

错误代码0xc0000001要怎么解决?如何修复错误

出现错误代码0xc0000001这个要怎么解决&#xff1f;其实这个的蓝屏问题还是非常的简单的&#xff0c;有多种方法可以实现 解决方法一 1、首先使用电脑系统自带的修复功能&#xff0c;首先长按开机键强制电脑关机。 注&#xff1a;如果有重要的资料请先提前备份好&#xff0c;…...

为什么 HTTP PATCH 方法不是幂等的及其延伸

幂等性 首先来看什么是幂等性&#xff0c;根据 rfc2616(Hypertext Transfer Protocol – HTTP/1.1) 文档第 50 页底部对 Idempotent Methods 的定义&#xff1a; Methods can also have the property of “idempotence” in that (aside from error or expiration issues) the…...

13 Day:实现内核线程

前言&#xff1a;我们昨天完成了内核的内存池以及内存管理程序&#xff0c;今天我们要揭开操作系统多任务执行的神秘面纱&#xff0c;来了解并实现一个多任务的操作系统。 一&#xff0c;实现内核线程 在聊线程之间我们先聊聊处理器吧&#xff0c;众所周之现在我们的CPU动不动…...

GPU服务器安装显卡驱动、CUDA和cuDNN

GPU服务器安装cuda和cudnn1. 服务器驱动安装2. cuda安装3. cudNN安装4. 安装docker环境5. 安装nvidia-docker25.1 ubuntu系统安装5.2 centos系统安装6. 测试docker容调用GPU服务1. 服务器驱动安装 显卡驱动下载地址https://www.nvidia.cn/Download/index.aspx?langcn显卡驱动…...

结构体变量

C语言允许用户自己建立由不同类型数据组成的组合型的数据结构&#xff0c;它称为结构体&#xff08;structre&#xff09;。 在程序中建立一个结构体类型&#xff1a; 1.结构体 建立结构体 struct Student { int num; //学号为整型 char name[20]; //姓名为字符串 char se…...

Java 多态

文章目录1、多态的介绍2、多态的格式3、对象的强制类型转换4、instanceof 运算符5、案例&#xff1a;笔记本USB接口1、多态的介绍 多态&#xff08;Polymorphism&#xff09;按字面意思理解就是“多种形态”&#xff0c;即一个对象拥有多种形态。 即同一种方法可以根据发送对…...

九龙证券|一夜暴跌36%,美股走势分化,标普指数创近2月最差周度表现

当地时间2月10日&#xff0c;美股三大指数收盘涨跌纷歧。道指涨0.5%&#xff0c;标普500指数涨0.22%&#xff0c;纳指跌0.61%。 受国际油价明显上升影响&#xff0c;动力板块领涨&#xff0c;埃克森美孚、康菲石油涨超4%。大型科技股走低&#xff0c;特斯拉、英伟达跌约5%。热门…...

【数据库】 mysql用户授权详解

目录 MySQL用户授权 一&#xff0c;密码策略 1&#xff0c;查看临时密码 2&#xff0c;查看数据库当前密码策略&#xff1a; 二&#xff0c; 用户授权和撤销授权 1、创建用户 2&#xff0c;删除用户 3&#xff0c;授权和回收权限 MySQL用户授权 一&#xff0c;密码策略…...

【性能】性能测试理论篇_学习笔记_2023/2/11

性能测试的目的验证系统是否能满足用户提出的性能指标发现性能瓶颈&#xff0c;优化系统整体性能性能测试的分类注&#xff1a;这些测试类型其实是密切相关&#xff0c;甚至无法区别的&#xff0c;例如几乎所有的测试都有并发测试。在实际中不用纠结具体的概念。而是要明确测试…...

C语言(输入printf()函数)

printf()的细节操作很多&#xff0c;对于现阶段的朋友来说&#xff0c;主要还是以理解为主。因为很多的确很难用到。 目录 一.转换说明&#xff08;占位符&#xff09; 二.printf()转换说明修饰符 1.数字 2.%数字1.数字2 3.整型转换字符补充 4.标记 -符号 符号 空格符…...

Zabbix 构建监控告警平台(四)

Zabbix ActionZabbix Macros1.Zabbix Action 1.1动作Action简介 当某个触发器状态发生改变(如Problem、OK)&#xff0c;可以采取相应的动作&#xff0c;如&#xff1a; 执行远程命令 邮件&#xff0c;短信&#xff0c;微信告警,电话 1.2告警实验简介 1. 创建告警media type&…...

2004-2019年285个地级市实际GDP与名义GDP

2004-2019年285个地级市实际GDP和名义GDP 1、时间&#xff1a;2004-2019年 2、范围&#xff1a;285个地级市 3、说明&#xff1a;GDP平减指数采用地级市所在省份当年平减指数 4、代码&#xff1a; "gen rgdp gdp if year 2003 gen rgdp gdp if year 2003" re…...

Node.js笔记-Express(基于Node.js的web开发框架)

目录 Express概述 Express安装 基本使用 创建服务器 编写请求接口 接收请求参数 获取路径参数(/login/2) 静态资源托管-express.static&#xff08;内置中间件&#xff09; 什么是静态资源托管&#xff1f; express.static() 应用举例 托管多个静态资源 挂载路径前缀…...

力扣sql简单篇练习(十五)

力扣sql简单篇练习(十五) 1 直线上的最近距离 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT min(abs(p1.x-p2.x)) shortest FROM point p1 INNER JOIN point p2 ON p1.x <>p2.x1.3 运行截图 2 只出现一次的最大数字 2.1 题目内容 2…...

浅谈动态代理

什么是动态代理&#xff1f;以下为个人理解:动态代理就是在程序运行的期间&#xff0c;动态地针对对象的方法进行增强操作。并且这个动作的执行者已经不是"this"对象了&#xff0c;而是我们创建的代理对象&#xff0c;这个代理对象就是类似中间人的角色&#xff0c;帮…...

Idea超好用的管理工具ToolBox(附带idea工具)

文章目录为什么要用ToolBox总结idea管理安装、更新、卸载寻找ide配置、根路径idea使用准备工作配置为什么要用ToolBox 快速轻松地更新,轻松管理您的 JetBrains 工具 安装自动更新同时更新插件和 IDE回滚和降级通过下载补丁或一组补丁而不是整个包&#xff0c;节省维护 IDE 的…...

网站建设费用/凡科网站建站教程

数组有四种定义的方式 使用构造函数&#xff1a; var a new Array(); var b new Array(8); var c new Array("first", "second", "third"); 或者数组直接量&#xff1a; var d ["first", "second", "third"];…...

舟山网站建设优化/今日油价92汽油价格表

返回目录 建造者模式是我的"设计模式"里创建型模式里的最后一篇,这种模式在实现中,很多架构都用到了,如MVC,MVP,MVVM,它们都是有建造者模式的精髓的,即,创建与表现分享,我们的MVC何尝不是,我们的MVVM又何尝不是呢,我们做软件的,换肤是常有的事,其实换肤的实现不就是建…...

广州公司建设网站/做网络推广怎么收费

为什么其他人都是插值套插值啊&#xff0c;&#xff0c;&#xff0c;&#xff0c;就我是XJB做的吗2333 k次多项式的前缀和可以表示成k1次多项式&#xff0c;用两次这个玩意就可以发现g可以表示成一个k2次多项式。 然后我的做法是把g用拉格朗日插值暴力多项式乘法乘出来&#xf…...

东莞网站设计制作教程/google服务框架

JAVA项目实现授权部署 (一)请注意&#xff1a;这个只是个比较low的实现&#xff0c;如果那种考虑用户懂代码&#xff0c;又拿到源码的&#xff0c;别看这个了还是。对我们来说&#xff0c;拿到源码&#xff0c;没有什么破不了的&#xff0c;只不过是时间问题&#xff0c;对不&a…...

做违法网站会怎么样/互联网营销师是干什么的

目录1、NIST的云计算定义1.1、云计算概念1.1.1、云计算资源1.1.2、云计算服务模型1.1.3、发布模型2、OpenStack概述2.1、OpenStack服务2.2、OpenStack优势3、OpenStack一键在线安装3.1、环境搭建3.1.2、配置网卡&#xff0c;挂载光盘3.1.3、配置yum源3.1.4、关闭防火墙和核心防…...

深圳医疗网站建设/搜索引擎优化的步骤

1. Node特性Node的功能强大&#xff0c;它将JavaScript扩展到了更多领域&#xff0c;特别是后端网站服务器开发。它是对高性能V8引擎的封装&#xff0c;通过提供一系列优化的API类库&#xff0c;使V8在浏览器之外依然能高效运行。Node的一大特性是对高性能的追求。首先&#xf…...