首页 > 编程语言 >【C++】马蹄集05 最大默契

【C++】马蹄集05 最大默契

时间:2024-08-10 21:28:22浏览次数:15  
标签:输出 05 int C++ length len YES 默契 op

小码哥和小码妹是好朋友,他们有时会用一种方式检测双方的默契程度:两人分别给出一个字符串8 和并进行若干次操作使s串变得和t串一样。操作分为两种:

1. 删除s 串的第一个字符;
2. 将一个新字符插在 s 串的第一个字符之前。
如果可以用正好n次操作使s串变为t串,就意味着他们两人很有默契,输出YES ,否则输出NO。

格式

 输入格式:

输入共三行。第一行一个整数n满足0≤n<2*10^6;第二行一个字符串 s;
第三行一个字符串 t,保证 1≤|s|,|t|<2*10^5 且包含的字符均为小写字母。
输出格式:输出一行,YES或NO

样例1

输入:16
aeomopil
scomlpab
输出:YES

代码  通过公共后缀值计算最小操作数op  op<=n且op-n为偶数时可以使s串变得和t串一样
#include <iostream>
#include <string>

using namespace std;

void f(string s,string t,int n){
    int len=0;
    int i=s.length()-1;
    int j=t.length()-1;
    while(i>=0&&j>=0&&s[i]==t[j]){
        len++;
        i--;
        j--;
    }
    int op=s.length()+t.length()-2*len;
    if(op<=n&&(op-n)%2==0) cout<<"YES";
    else cout<<"NO";
}

int main() {
    string s,t;
    int n;
    cin>>n;
    cin>>s;
    cin>>t;
    f(s, t, n);
    return 0;
}

标签:输出,05,int,C++,length,len,YES,默契,op
From: https://blog.csdn.net/Rluhan7/article/details/140969630

相关文章

  • C++特性
    C++特性C++主要版本:可以通过draft/papersatmain·cplusplus/draft(github.com)查看C++草案。C++98:C++的第一个国际标准ISO/IEC14882:1998,包括的特性有:模板、标准模板库、命名空间、异常处理等。C++03:2003年发布的版本ISO/IEC14882:2003,包括的特性有:内联函数、操作......
  • C/C++数字与字符串互相转换
    前言:在C/C++程序中,会需要把数字与字符串做出互相转换的操作,用于实现程序想要的效果。下面将介绍多种方法实现数字与字符串互相转换。字符串转为数字一、利用ASCII我们知道每个字符都有一个ASCII码,利用这一点可以将字符-'0'转为数字。在字母大小写转换时也可以利用这个性质......
  • 最大子矩阵(C/C++)
    简介:最大子矩阵问题是指在一个矩阵中找到一个子矩阵,使得该子矩阵的元素之和最大。解决该问题的常用方法是使用动态规划。先计算出每一行的前缀和,然后对于每一列的起始和终止位置,计算出该区域内每一行的和,得到一个一维数组。再对该一维数组使用动态规划求解最大子数组和的问题......
  • 【C++】protobuf的简单使用(通讯录例子)
    protobuf的简单使用(通讯录例子).proto文件的编写保留字段字段唯一编号protobuf的类型enum类型Any类型oneof类型map类型完整通讯录代码.proto文件write文件read文件运行结果.proto文件的编写syntax用于指定protobuf的语法;package当.proto文件编译后再*.pb.h文件中会......
  • LeetCode 算法:最小栈 c++
    原题链接......
  • c++中内存管理
    一、内存划分1、分区介绍(1)栈栈又称做堆栈,用于存储非静态局部变量、函数参数、返回值等,栈的空间是向下增长的。(2)内存映射段内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(3)堆堆用于程序运行时动态内存分......
  • 【C++面向对象】重载
    重载简述重载是C++面向对象编程领域的重要概念。C++允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。对于重载函数而言,有一个基本原则:重载的函数两两之间的参数列表互不相同。参数列表不同是指参数的数量不同,或者参数的类型不同,但C++并......
  • 扩展【从0制作自己的ros导航小车】C++_ROS_QT5联合编译,简单界面为ROS开发增添交互
    从0制作自己的ros导航小车前言一、环境搭建二、联合编译三、测试前言前面已经实现了导航功能,对于之后的一些开发,有交互能力是比较重要的,比如小车上连接一块屏幕,通过屏幕来选择模式,可视化等等。QT是不错的选择,但是需要做一些额外的工作,让QT与ROS能够建立联系,实现通信......
  • 集合相似度c++
    初入新蒟蒻一多多关照。弱弱问一句,有没有东营区一中的学哥学姐                               集合相似度题目是这样的——题目描述给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合......
  • C++基础入门
    一·命名空间(namespace)正常namespace的使用include<stdio.h>#include<stdlib.h>//1.正常的命名空间定义//wzh是命名空间的名字,⼀般开发中是⽤项⽬名字做命名空间名。namespacebit{//命名空间中可以定义变量/函数/类型intrand=10;intAdd(in......