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

每日OJ题_牛客_NC114旋转字符串_C++_Java

目录

牛客_NC114旋转字符串

题目解析

C++代码1模拟

C++代码2找规律

Java代码


牛客_NC114旋转字符串

旋转字符串_牛客题霸_牛客网

描述:

字符串旋转:

给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(可以为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。

例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同,返回true。

再如:如果A=‘abcd’,B=‘abcd’,A切成‘abcd’和''(空串),换位后可以得到B,返回true。

数据范围:A,B字符串长度满足 n≤1000n≤1000,保证字符串中仅包含小写英文字母和阿拉伯数字

进阶: 时间复杂度 O(n),空间复杂度 O(n)


题目解析

  • 第一种解法:按照题目的要求模拟,每次旋转⼀下 A 字符串,看看是否和 B 字符串相同。
  • 第二种解法:需要找到字符串旋转之后能匹配所满足的性质。如果 A 字符串能够旋转之后得到 B 字符串的话,在 A 字符串倍增之后的新串中,⼀定是可以找到B 字符串的。因此仅需让 A 字符串倍增,然后查找 B 字符串即可。

C++代码1模拟

class Solution {
public:
    bool solve(string A, string B) {
        for(int i = 1; i <= A.size(); ++i)
        {
            string tmp1 = A.substr(0, i);
            string tmp2 = A.substr(i, A.size());
            if(tmp2 + tmp1 == B)
                return true;
        }
        return false;
    }
};

C++代码2找规律

class Solution {
public:
    bool solve(string A, string B) {
        if(A.size() != B.size())
            return false;
        return (A + A).find(B) != -1;
    }
};

Java代码

import java.util.*;
public class Solution
{
    public boolean solve (String A, String B) 
    {
        if(A.length() != B.length())
            return false;
        return (A + A).contains(B);
    }
}

http://www.kler.cn/a/398398.html

相关文章:

  • Java:从诞生到未来的编程语言进化史与应用前景
  • 校园二手交易网站毕业设计基于SpringBootSSM框架
  • 逆向攻防世界CTF系列37-crackme
  • LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程
  • npm install命令报错:npm ERR Could not resolve dependency npm ERR peer…
  • Servlet⽣生命周期超级细(笔记)
  • STM32 | 空气净化器
  • 构建安全可靠的人工智能数据中心的关键因素
  • mac怎么看当前终端是zsh还是bash
  • 通过全球最前沿的技术解决视频拼接中时延带来的的应用缺陷,使得全景视频拼接能够真正得以大范围使用和推广的智慧地产开源了。
  • web前端开发--盒子属性
  • C++20中的概念(Concepts)到底是什么概念?
  • Android - Pixel 6a 手机OS 由 Android 15 降级到 Android 14 操作记录
  • 六:从五种架构风格推导出HTTP的REST架构
  • 2024.5 AAAiGLaM:通过邻域分区和生成子图编码对领域知识图谱对齐的大型语言模型进行微调
  • 深度学习神经网络创新点方向(具体)
  • Linux——环境基础开发工具使用1
  • React Native 全栈开发实战班 - 原生功能集成之地理位置服务
  • 常用的Anaconda Prompt命令行指令
  • 【第三课】Rust变量与数据类型(二)
  • java.sql.SQLException Parameter index out of range
  • Ubuntu下的Eigen库的安装及基本使用教程
  • 14.最长公共前缀
  • 基于Kafka2.1解读Consumer原理
  • memblock内存分配器
  • 智能算法助力衍生品市场投资分析:正大科技的量化模型应用