【中大加机试之最后的挣扎之“循环移位”】

2023-10-30

题目描述

给出字符串A和B,判断A是否是B的进行循环移位得到的子串。
如A = “ABC”,B = “BCDEFA”, 则是。

输入输出格式

输入描述:多组输入
输入两个字符串A和B
输出描述:如果是循环移位子串输出yes,否则输出no
如:
ABC BCDEFA---------yes
ABC BADEFC---------no

解题思路:一

复制B字符串B+B,利用find(),在B+B中直接找A

#include <iostream>
#include <cstring>
using namespace std;

int main(){
	string a,b;
	while(cin>>a>>b){
		string ans = b+b;
		if(ans.find(a)!=-1) cout<<"yes";//find==-1代表没找到
		else cout<<"no";
		cout<<endl;
	}
	return 0;
}

解题思路:二

B+=B然后暴力匹配

#include <iostream>
#include <string>
using namespace std;
void isOk(string a,string b){
	int j=0;
	bool flag=false;
	for(int i=0;i<b.length();++i){
		for(;j<a.length();++j){
			if(a[j]!=b[i+j])break;
		}
		if(j==a.length()){
			cout<<"yes"<<endl;
			flag=true;
			break;
		}
		else j=0;
	}
	if(!flag)cout<<"no"<<endl;
}
int main(){
	string a,b;
	while(cin>>a>>b){
		b+=b;
		isOk(a,b);
	}
	return 0;
}

解题思路:三

从头比较0到len1是否为a
不是的话循环一个字符

#include <iostream>
#include <string>
using namespace std;
void isOk(string a,string b){
	int len1=a.length();
	int len2=b.length();
	bool flag=false;
	for(int i=0;i<len2;++i){
		if(b.substr(0,len1)==a){//b的0到len1长度的子串
			flag=true;
			cout<<"yes"<<endl;
			break;
		}
		else{
			char temp=b.back();//取b最后一个元素
			b.pop_back();//删除最后一个元素
			b=temp+b;
		}
	}
	if(!flag)cout<<"no"<<endl;
}
int main(){
	string a,b;
	while(cin>>a>>b){
		isOk(a,b);
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【中大加机试之最后的挣扎之“循环移位”】 的相关文章

随机推荐

  • uniapp新手必须的知道的坑

    有学过微信小程序开发和vue的 uniapp开发成本低 但是还是不能忽视了注意事项 别给自己带来麻烦 以下是我从官网上抽取的 希望接下来的开发能够顺利进行 文字有点多 但细看益处多多 go 开发工具下载标准版 在运行或发行uni app时
  • 目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备

    目的 使用CUDA环境变量CUDA VISIBLE DEVICES来限定CUDA程序所能使用的GPU设备 环境 系统 Win10 环境 Opencv3 4 0 4 1 0 显卡 1080ti 问题 实际项目中使用了一个GPU程序 在双卡10
  • 关于shell中的basename

    basename 是去除目录后剩下的名字 example shell gt temp home temp 1 test shell gt base basename temp shell gt echo base 结果为 1 test di
  • 小孩从小就学习编程,真的有必要吗?

    现今 许多面向儿童的计算机教程和编程语言十分风行 那么是否人人都应该从小学计算机呢 美国前总统奥巴马曾表示 应该 向每个学生提供动手式的计算机科学和数学课程 从一开始就让他们为将来的工作做好准备 不久 他启动了 人人来学计算机 Comput
  • kubernetes 节点维护 cordon, drain, uncordon

    这三个命令是正式release的1 2新加入的命令 三个命令一起介绍 是因为三个命令配合使用可以实现节点的维护 在1 2之前 因为没有相应的命令支持 如果要维护一个节点 只能stop该节点上的kubelet将该节点退出集群 是集群不在将新的
  • shader学习笔记(一)- 利用矩阵对模型顶点进行缩放、旋转、平移

    书籍资料参考 Unity Shader入门精要 冯乐乐 4 5矩阵的几何意义 变换 视频资料参考 技术美术百人计划 图形 1 2 2 矩阵运算 庄懂的技术美术入门课 美术向 直播录屏 第19课 模型缩放 缩放矩阵 shader float
  • 代码随想录算法训练营第三天

    LeetCode203 力扣 移除链表元素 为了将处理头结点的逻辑和处理其他节点逻辑保持一致 引入了dummyHead package algor trainingcamp import algor junior algor list Li
  • YOLOv5导出jit,onnx,engine

    一 YOLOv5导出jit YOLOv5自导出 我们可以直接用它的导出代码 models export py Exports a YOLOv5 pt model to ONNX and TorchScript formats Usage e
  • 微信小程序【获取用户昵称头像和昵称(附源码)】

    获取用户昵称头像和昵称 wx getUserProfile bindgetuserinfo 登录过程 前端源码 https pan baidu com s 1uz2Gm2FMB 8RFVkhlHY3kQ 提取码 zb4w 后端源码 http
  • JS-设置、获取对象的键

    Object defineProperty 设置对象的键 将 name 刘备 phone 17783453234 转化为 刘备 17783453234 handleFamilyNumber let obj this family numbe
  • java将秒化为分钟和秒

    package Second import java util Scanner public class Demo1 将秒化为分钟和秒 author zll public static void main String args Scann
  • RS-485通信协议(ModBus版)

    从机 设备 的通信参数 波特率 2400 115200bps 出厂默认9600bps 数据位 7 9位 出厂默认8位 停止位 1 2位 出厂默认1位 奇偶校验 无校验 奇校验 偶校验 RS485 ModBus通信格式 主机向485总线发送问
  • spring boot整合shiro引用配置文件配置是出现的问题

    Spring boot 整合shiro 使用yml配置文件 最近自己玩一下springBoot配置 然后整合一下常用的框架 遇到一个问题 配置LifecycleBeanPostProcessorBean 的时候总是先于spring 读取ym
  • 力扣724.寻找数组的中心索引——python

    题目要求中心索引左右之和相等 没有的话我们返回 1 重复的返回最左边的 我们可以直接遍历所有 分别进行求和 满足条件我们返回值 否则 1 for i in range len nums if sum nums i sum nums i 1
  • Scanner类中next()与nextLine()的区别

    Scanner类 Scanner是Java5的新特性 我们可以通过Scanner类来从键盘获取用户输入的内容 下面是创建Scanner对象的语法 创建之前需要导入Scanner的包 import java util Scanner Scan
  • 文字的背景划过效果

    文章中的效果模仿的是 CodePen 网站中的效果 传送门 原理 给 h1 的前面添加一个 伪元素 设置他的收缩比例为 0 收缩中心在 右下角 right bottom 在鼠标移上时 设置 收缩中心在 左下角 left bottom 并设置
  • S8-codelab02

    import news cnn model import numpy as np import os import pandas as pd import pickle import shutil import tensorflow as
  • 如何将ajax传过来的数据转为,spring 接收前台ajax传来的参数的几个方法

    知识补充 JSON stringify 将value Object Array String Number 序列化为JSON字符串 JSON parse 将JSON数据解析为js原生值 toJSON 作为JSON stringify中第二个
  • java/php/net/python美容美发店会员管理系统

    本系统带文档lw万字以上 文末可领取本课题的JAVA源码参考 开发环境 开发语言 Java 框架 ssm 技术 JSP JDK版本 JDK1 8 服务器 tomcat7 数据库 mysql 5 7 一定要5 7版本 数据库工具 Navica
  • 【中大加机试之最后的挣扎之“循环移位”】

    题目描述 给出字符串A和B 判断A是否是B的进行循环移位得到的子串 如A ABC B BCDEFA 则是 输入输出格式 输入描述 多组输入 输入两个字符串A和B 输出描述 如果是循环移位子串输出yes 否则输出no 如 ABC BCDEFA