Acwing.4382 快速打字(双指针)

news/2025/3/5 3:21:30/

题目

芭芭拉是一个速度打字员。

为了检查她的打字速度,她进行了一个速度测试。

测试内容是给定她一个字符串 I,她需要将字符串正确打出。

但是,芭芭拉作为一个速度打字员,在追求速度的同时,难免会发生一些错误,按错一些按键。

最终,芭芭拉打出的字符串为 P。

现在,芭芭拉想知道,能否仅通过删除一些额外字母的方式,将字符串 P 变为字符串 I。

如果可以,则输出需要删除的字母数量,如果不行,则输出 IMPOSSIBLE。

输入格式

第一行包含整数 T,表示共有 T 组测试数据。

每组数据占两行,第一行包含字符串 I,第二行包含字符串 P。

输出格式

每组数据输出一个结果,每个结果占一行。

结果表示为 Case #x: y,其中 x 为组别编号(从 1 开始),y 为需要删除的字母数量或 IMPOSSIBLE。

数据范围

1≤T≤100,
字符串 I 和 P 均只包含大小写字母。
1≤|I|,|P|≤105

  • 输入样例1:
2
aaaa
aaaaa
bbbbb
bbbbc
  • 输出样例1:
Case #1: 1
Case #2: IMPOSSIBLE
  • 输入样例2:
2
Ilovecoding
IIllovecoding
KickstartIsFun
kkickstartiisfun
  • 输出样例2:
Case #1: 2
Case #2: IMPOSSIBLE

题解

import java.util.Scanner;/*** @author akuya* @create 2023-10-04-18:56*/
public class Main {static int T=100;static int t;public static void main(String[] args) {Scanner scanner=new Scanner(System.in);t=scanner.nextInt();int tt=t;while(t--!=0){String a=scanner.next();String b=scanner.next();int lena=a.length();int lenb=b.length();int p=0;for(int i=0;i<lenb;i++){if(b.charAt(i)==a.charAt(p)){p++;}if(p==lena){break;}}System.out.print("Case #");System.out.print(tt-t+": ");if(p==lena){System.out.println(lenb-lena);}elseSystem.out.println("IMPOSSIBLE");}}
}

思路

双指针的简单运用,两个字符串分别启用一个指针,通过双指针查找目标串是否有原始串的字母,存在用字符串长度相减即可,不存在输出impossible。


http://www.ppmy.cn/news/1143941.html

相关文章

mysql面试题25:数据库自增主键可能会遇到什么问题?应该怎么解决呢?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:数据库自增主键可能会遇到什么问题? 数据库自增主键可能遇到的问题: 冲突问题:自增主键是通过自动递增生成的唯一标识符,但在某些情况下可能会…

k8s安全机制

安全机制 一、机制说明二、认证&#xff08;Authentication&#xff09;HTTP Token 认证HTTP Base 认证HTTPS 证书认证&#xff08;最严格&#xff09; 三、鉴权&#xff08;Authorization&#xff09;角色角色绑定主体&#xff08;subject&#xff09;Role and ClusterRoleRol…

【Java 进阶篇】CSS语法格式详解

在前端开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;用于控制网页的样式和布局。了解CSS的语法格式是学习如何设计和美化网页的关键。本文将深入解释CSS的语法格式&#xff0c;包括选择器、属性和值等基本概念&#xff0c;同时提供示例代码以帮助初学者更好地理解。…

Java项目如何防止SQL注入的四种方案

什么是SQL注入 SQL注入&#xff08;SQL Injection&#xff09;是一种常见的网络安全漏洞&#xff0c;它允许攻击者通过操纵应用程序的输入来执行恶意的SQL查询。这种漏洞发生在应用程序没有正确验证、过滤或转义用户提供的输入数据时。攻击者可以利用这个漏洞来执行未经授权的…

SQL Server 简介与 Docker Compose 部署

今天我翻阅了在之前公司工作时的笔记&#xff0c;发现了有关数据库的一些记录。当时&#xff0c;我们的项目开始使用 Oracle 数据库&#xff0c;但后来由于一些项目需求的变更&#xff0c;我们切换到了 SQL Server 。值得一提的是&#xff0c;公司当时也开始采用 Docker 技术&a…

Java简介

JAVA语言是一门高级的面向对象的程序设计语言&#xff0c;Java语言编写的程序既是编译型的&#xff0c;又是解释型的&#xff0c;跨平台&#xff0c;一次编写&#xff0c;到处运行&#xff0c;语法类似C&#xff0c;但比C语法简洁很多。 Java提倡万物皆对象&#xff0c;也就是…

XMLHttpRequest和Fetch API

XMLHttpRequest和Fetch API 1、XMLHttpRequest2、Fetch API总结 简述&#xff1a;XMLHttpRequest和Fetch API是两种常用的JavaScript网络请求方式&#xff0c;可以用来发送HTTP请求并获取服务器响应。 1、XMLHttpRequest XMLHttpRequest&#xff1a;XMLHttpRequest是一种传统的…

C++11(下)

目录 一、类的新功能1.1 默认成员函数1.2 类成员变量初始化1.3 强制生成默认函数的关键字default1.4 禁止生成默认函数的关键字delete1.5 继承和多态中的final与override关键字 二、可变参数模板三、lambda表达式3.1 C98中的一个例子3.2 lambda表达式3.3 lambda表达式语法3.4 函…