首页 > 编程语言 >【每周例题】C++ 力扣 旋转字符串

【每周例题】C++ 力扣 旋转字符串

时间:2024-06-04 19:01:05浏览次数:33  
标签:include goal int C++ 旋转 力扣 循环 字符串 例题

旋转字符串

 题目

旋转字符串

 题目分析

方法1:模拟字符串

1.采用双for循环去模拟字符串旋转,第一个for循环,模拟字符串循环位移;第二个for循环,进行逐个字符串检测

2.使用if进行判断是否符合要求

方法2:

假设我们将goal字符串拆分为2个字符串,将其命名为R、L,我们将会得到以下式子

gogal gogal =RLRL=RsL

代码

方法1

#include <iostream>  
#include <string>  

using namespace std;

int main() 
{
    string s, goal;
    cin >> s >> goal;

    int m = s.size();
    int n = goal.size();

    // 首先检查两个字符串的长度是否相等  
    if (m != n) 
    {
        cout << "false" << endl;
        return 0;
    }

    // 遍历所有可能的循环移位  
    for (int i = 0; i < m; i++) 
    {
        bool flag = true;
        // 逐个字符比较  
        for (int j = 0; j < m; j++) 
        {
            if (s[(i + j) % m] != goal[j]) 
            {
                flag = false;
                break;
            }
        }
        // 如果找到一个匹配的循环移位,则输出 "true" 并返回  
        if (flag) 
                                                                                                                                                                                                                                                                                                                                     {
            cout << "true" << endl;
            return 0;
        }
    }

    // 如果没有找到匹配的循环移位,则输出 "false"  
    cout << "false" << endl;
    return 0;
}

方法二

#include<bits/stdc++.h>
using namespace std;

int main()
{
	string s, goal;
	cin >> s >> goal;

	if (s.length() == goal.length() && (goal + goal).find(s) != -1)
	{
		cout << "true";
	}
	else
	{
		cout << "false";
	}
	return 0;
}

  

 

标签:include,goal,int,C++,旋转,力扣,循环,字符串,例题
From: https://www.cnblogs.com/hcrzhi/p/18231523

相关文章

  • 力扣每日一题 6/4
    3067.在带权树网络中统计可连接服务器对数目[中等]题目:给你一棵无根带权树,树中总共有 n 个节点,分别表示 n 个服务器,服务器从 0 到 n-1 编号。同时给你一个数组 edges ,其中 edges[i]=[ai,bi,weighti] 表示节点 ai 和 bi 之间有一条双向边,边的权值为 we......
  • 快速入门C++正则表达式
    正则表达式(RegularExpression,简称Regex)是一种强大的文本处理工具,广泛用于字符串的搜索、替换、分析等操作。它基于一种表达式语言,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式不仅在各种编程和脚本语言中被广泛支持,还是很多文本编辑器和处理工......
  • C++知识点
    explicit关键字explicit关键字explicit关键字在理解explicit关键字之前,我们必须要了解构造函数的类型转换作用,以便于我们更好的理解explicit关键字,如果有不懂构造函数,可以来看看这篇文章:构造函数点击查看代码classDate{public://构造函数Date(intyear):_......
  • 华为OD机试2024年最新题库(Python、JAVA、C、C++合集)C卷+D卷
    介绍博主介绍:CSDN领军人物top1的作者,全网粉丝30w+,文章累计被阅读3800w+,直接帮助200+,间接帮助800+同学进入od添加或私信博主免费获取本题解析以及代码24年5月份开始,考的都是OD统一考试(D卷),题库已经整理好了,命中率95%以上。5-10月份考的都是D卷真题,都是原题,圈内有多种......
  • C++ 强制类型转换运算符简介
    C++提供了四种强制类型转换运算符:static_cast、reinterpret_cast、const_cast和dynamic_cast。这些运算符各自具有特定的用途,适用于不同的类型转换需求。本文将详细介绍这四种运算符及其应用场景,并讨论它们在向上转换中的使用方法。1.static_caststatic_cast用于在编译时执......
  • C++ Builder 2010 绘制坐标
     一、步骤:1.先确定Image的位置,大小(可以不写)          2.设置初始面板,绘制初始的x,y坐标轴          3.画x,y向的刻度线,标刻x,y轴刻度          4.获取数据(可以不写)          5.将数......
  • 如何选择实名认证接口?C++身份证二、三要素实名认证接口提供厂商
    线上平台进行身份证实名认证,有助于保障交易的安全性,防止身份信息被盗用的风险,其主要应用于金融、在线银行、支付平台、社交媒体、账号注册、内容发布等多种应用场景。那么,又当如何选择实名认证接口厂家呢?翔云人工智能开放平台专注于API接口的提供,为有需要的企业提供了便......
  • C++发票查验真假的接口厂家有哪些?数电票、医疗票据查验
    现如今,随着数字化应用的不断普及,财务工作也在不断的由人工向数字化转型。企业财务进行数字化转型,能够推动财务管理职能的转型升级,通过运用云计算、大数据等技术,重构财务组合和业务流程,实现业财融合,提升会计信息质量、工作效率、合规程度及价值创造能力。翔云人工智能开放......
  • C++发票查验真假的接口厂家有哪些?数电票、医疗票据查验
    现如今,随着数字化应用的不断普及,财务工作也在不断的由人工向数字化转型。企业财务进行数字化转型,能够推动财务管理职能的转型升级,通过运用云计算、大数据等技术,重构财务组合和业务流程,实现业财融合,提升会计信息质量、工作效率、合规程度及价值创造能力。翔云人工智能开放平......
  • C++访问限定符private、public、protected的使用场景
    众所周知,C++中有3种访问符,分别是private、public、protected。其中private和public比较好理解。private:只能由该类中的函数、其友元函数访问,不能被任何其他访问,更不能由该类的对象在类外进行访问,类成员变量一般修饰为private,防止类使用者不受约束地直接修改数据。public:......