【C语言每日一题】判断字符串旋转结果(附加字符串左旋详解)
【C语言每日一题】—— 判断字符串旋转结果😎😎😎
目录
💡前言🌞:
💛字符串左旋题目💛
💪 解题思路的分享💪
😊题目源码的分享😊
💛判断字符串旋转结果题目💛
💪 解题思路的分享💪
😊题目源码的分享😊
👉 本菜鸡&总结 👈
😎博客昵称:陈大大陈
😊座右铭:所谓觉悟,就是在漆黑的荒野上开辟出一条理当前进的光明大道。
😋博主简介:一名热爱C/C++和算法等技术,喜欢运动,爱胡思乱想却胸怀大志的小博主!
😚博主&唠嗑:早中晚安!😄各位CSDN的朋友!😄我是博客新人陈大大陈,希望我的文章能为你带来帮助!欢迎大家在评论区畅所欲言!也希望大家多多为我提出您宝贵的建议!😘如果觉得我写的不错的话还请点个赞和关注哦~😘😘😘
💡前言🌞:
大伙们好!😄又到了小陈每日一题的时间了~ 😋😋😋今天也带来了十分有趣的题目!🥰🥰🥰用C语言实现——~判断字符串旋转结果(附加字符串左旋详解),这个题目很有意思,新颖的同时又很值得思考!🤗为了讲明白这个题目,我将由浅入深,先从字符串左旋讲起,再讲字符串左旋的判断,我现在迫不及待地要和大家分享~!😄🤗🤗
💛字符串左旋题目💛
我们首先从字符串左旋讲起🥰,题目如下:
💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡实现一个函数,可以左旋字符串中的k个字符。
例如:
ABCD左旋一个字符得到BCDA
ABCD左旋两个字符得到CDAB
💪 解题思路的分享💪
- 设计循环使其可以旋1次,然后让他执行n次是一个最简单的思路。
😊题目源码的分享😊
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void LeftRound(char* a, int n)
{int i,j,len = strlen(a);char tmp = a[0];//先储存首个元素,便于一会交换for (i = 0; i < n; i++)//进行n次移位{for (j = 0; j < len - 1; j++){a[j] = a[j + 1];//单次的位移}}a[j] = tmp;//将第一个元素与最后唯一没有移位的元素交换,完成一次移位。
}
int main()
{char a[] = { "abcdef" };int n;scanf("%d", &n);LeftRound(a,n);//左移几个元素就写几for (int i = 0;i < strlen(a); i++){printf("%c ", a[i]);}return 0;
}
💛判断字符串旋转结果题目💛
💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如:给定s1 =AABCD和s2 = BCDAA,返回1
给定s1=abcd和s2=ACBD,返回0.
AABCD左旋一个字符得到ABCDA
AABCD左旋两个字符得到BCDAA
AABCD右旋一个字符得到DAABC
💪 解题思路的分享💪
- 我们可以沿用上面的套路,只需再加上一个判断旋转后两数组是否相等的部分。
- 旋转的次数如何确定呢?我们可以用strlen函数求出字符串长度,将它的值作为旋转次数。
- 判断两字符串是否相等需要不能用==,我们需要用到strcmp函数,当返回值为1时,打印相等,否则打印不相等。
- 形参的类型定义成指针和数组皆可。
😊题目源码的分享😊
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<assert.h>
int LeftRound(char* s1, char* s2, int n)
{assert(s1 != NULL);assert(s2 != NULL);int i = 0, j, len = strlen(s1);for (j = 0; j < n; j++){char tmp = s1[0];for (i = 0; i < len - 1; i++){s1[i] = s1[i + 1];}s1[i] = tmp;if (strcmp(s1, s2) == 0){return 1;}}return 0;
}
int main()
{char s1[] = "AABCD", s2[] = "BCDAA";int n;int len = strlen(s1);if (LeftRound(s1, s2, len)){printf("是");}else{printf("不是");}return 0;
}
也可以写成下面的形式。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<assert.h>
int LeftRound(char* s1, char* s2, int n)
{assert(s1 != NULL);assert(s2 != NULL);if (strcmp(s1, s2) == 0)//如果输入的字符串和原字符串相同就等于零{return 1;}int len = strlen(s1);int i = 0;int j = 0;while (i < len)//旋转的次数进行n-1次{char tmp = *s1;for (j = 0; j < len - 1; j++){*(s1 + j) = *(s1 + j + 1);}*(s1 + len - 1) = tmp;//判断if (strcmp(s1, s2) == 0){return 1;}i++;}return 0;
}
int main()
{char s1[] = "AABCD", s2[] = "BCDAA";int n;int len = strlen(s1);if (LeftRound(s1, s2, len)){printf("是");}else{printf("不是");}return 0;
}
👉 本菜鸡&总结 👈
本篇文章旨在分享C语言详解【C语言每日一题】——判断字符串旋转结果(附加字符串左旋详解)。🤠希望我的文章能够让大家有所收获!😋😋😋大佬们如果对我的文章有什么建议,或者认为那里写的不好,请在评论区写下您宝贵的意见!😀如果觉得我写的不错的话还请点个赞和关注哦~我会持续输出编程的知识的!🌞🌞🌞
相关文章:
【C语言每日一题】判断字符串旋转结果(附加字符串左旋详解)
【C语言每日一题】—— 判断字符串旋转结果😎😎😎 目录 💡前言🌞: 💛字符串左旋题目💛 💪 解题思路的分享💪 😊题目源码的分享…...
SpringSecurity+JWT+Redis进行用户鉴权和接口权限的控制
系统的登录,都做些什么?用户访问登录页时:会发起一个获取图片验证码的请求,后端先生成一个uuid代表此次的验证码,接着生成 "ab?答案" 的表达式,将前面的内容转换成流生成图片,后面的答案则存储到…...
七大排序(Java)
目录 一、插入排序 1. 直接插入排序 2. 希尔排序 二、选择排序 1. 直接选择排序 2. 堆排序 三、交换排序 1. 冒泡排序 2. 快速排序 四、归并排序 五、总结 一、插入排序 1. 直接插入排序 抓一张牌,在有序的牌中,找到合适的位置并且插入。 时间…...
分享一些可以快速掌握python语法的小技巧
下面是我总结的一些有助于快速掌握 Python 语法的小技巧,欢迎一起交流。 注释:在代码中添加注释可以帮助你和其他人理解代码的目的和功能。在 Python 中,使用 # 符号来添加单行注释,使用三引号 """ 或 来添加多行…...
1.FFmpeg-音视频基础
专栏介绍基于最新的FFmpeg5.1.2版本讲解学习, 跟随博主一起学习ffmpeg: 本专栏学习流程为: FFmpeg安装、...
Parasoft的自动化测试平台到底强在哪?
在如今产品迭代如此之快的大背景下,软件测试这项工作越来越被大家所重视,但是通常情况下大家都是选择在产品上线前再去做测试,这个时候就会面临很多麻烦和挑战。首先,产品已经开发好之后,体量比较大,要从哪…...
FastDDS-0.简介
FastDDS简介 eProsima Fast DDS 是 DDS (Data Distribution Service) 协议的一个C语言实现版本,该协议由 Object Management Group (OMG) 组织定义。 eProsima Fast DDS 库既提供了一个应用编程接口(API),又提供了一种通信协议&a…...
Flutter入门进阶之旅 -开源Flutter项目
开源Flutter项目 该项目为纯flutter端项目,采用aar方式寄生在原生APP中,作为APP中的一个独立模块 在业务逻辑上做到与原生APP完全隔离,Flutter端开发者,可完全不用关注原生端的业务模块 两端开发彼此业务隔离,缩小了对…...
Opencv项目实战:21 美国ASL手势识别
0、项目介绍 首先,我可以保证在这里,你并不需要多么了解深的机器学习算法,我的初衷是通过本项目,激发大家学习机器学习的动力。选择这种手势原因是因为只有24个字母,你的电脑足以带的动,虽然我只训练A、B、…...
强化学习RL 01: Reinforcement Learning 基础
目录 RL理解要点 1. RL数学基础 1.1 Random Variable 随机变量 1.2 概率密度函数 Probability Density Function(PDF) 1.3 期望 Expectation 1.4 随机抽样 Random Sampling 2. RL术语 Terminologies 2.1 agent、state 和 action 2.2 策略 policy π 2.3 奖励 reward …...
C语言之练习题合集
💗 💗 博客:小怡同学 💗 💗 个人简介:编程小萌新 💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞 文章目录leetcode 题号:728. 自除数leetcode 题号:238.…...
sublimeText3新建文件自动添加注释头
参考: https://github.com/shiyanhui/FileHeader/blob/master/README.rst https://packagecontrol.io/packages/FileHeader https://github.com/shiyanhui/FileHeader fileheader:https://codeload.github.com/shiyanhui/FileHeader/zip/refs/heads/m…...
AndroidStudio打包HBuilderX的H5+项目为安卓App【一次过,无任何异常报错】
目录 1.查看HBuilderX的版本号 2.下载Dcloud上对应的安卓SDK 3.下载完安卓SDK后,我们解压它,注意不要放在任何有中文组成的文件夹中【是否有中文决定于你鼠标单击上面路径后,第一张图还没鼠标单击,第二张已鼠标单击,…...
【Linux】进程概念
目录 一、基本概念 二、查看进程 三、系统调用获取进程标示符 1、获取自己的PID 2、获取父进程的PID 四、创建进程 1、初识fork 2、使用fork的方式 五、进程状态 1、阻塞 2、挂起 3、R状态 4、S状态 5、D状态 6、T状态 6.1、kill指令 6.2、暂停进程与继续进程 …...
使用pyinstaller库打包exe时显示KeyError怎么办
PyInstaller是一个Python库,用于将Python应用程序转换为独立的可执行文件(executable)文件,支持多平台。它可以将Python解释器、依赖的库和脚本打包成一个单独的可执行文件,从而使应用程序可以独立运行,而无…...
k8s新增节点机器,无法拉取和推送镜像的解决方案
1、首先检查配置,查看镜像仓库是否已授权,若无授权,则进行授权。 命令:cat /etc/systemd/system/docker.service.d/docker-options.conf内容如果有这样一句就是已经授权,如果没有,就需要把这句加进去&…...
测试报告踩坑的点
测试报告作为测试人员的核心输出项,是体现自己工作价值的重要承载工具,需要我们认真对待,所以我们要重视测试报告的输出,那么在编写测试报告的时候,我们有哪些点需要注意的呢? 01 不要乱用模板 很多测试新人在编写测试…...
【Java】创建多线程的四种方式
一、方式1:继承Thread类 步骤: 创建一个继承于Thread类的子类重写Thread类的run()方法 ----> 此线程执行的操作声明在方法体中创建当前Thread子类的对象通过实例对象调用start()方法,启动线程 ----> Java虚拟机会调用run()方法 注意…...
【数据结构】队列的接口实现(附图解和源码)
队列的接口实现(附图解和源码) 文章目录队列的接口实现(附图解和源码)前言一、定义结构体二、接口实现(附图解源码)1.初始化队列2.销毁队列3.队尾入队列4.判断队列是否为空5.队头出队列6.获取队列头部元素7…...
日本知名动画公司东映动画加入 The Sandbox 元宇宙
与 Minto 合作将东映动画的 IP 呈现在元宇宙。 The Sandbox 很荣幸能与东映动画合作,与 Minto 携手在 The Sandbox 元宇宙中创建基于东映动画 IP 的相关体验。 作为日本动画的先驱,东映动画制作了日本最大和世界领先的动画作品,包括《龙珠》、…...
OrCAD Library Builder 17.2安装避坑指南:从破解失败到成功导出的完整流程
OrCAD Library Builder 17.2实战指南:从安装配置到高效建库的全流程解析 在电子设计自动化领域,OrCAD Library Builder作为Cadence生态系统中的重要工具,能够显著提升原理图符号和PCB封装库的创建效率。本文将深入剖析17.2版本的核心功能&…...
DeerFlow智能体技能开发:从零构建自定义Research Agent
DeerFlow智能体技能开发:从零构建自定义Research Agent 1. 引言 如果你正在寻找一种方法来扩展DeerFlow研究团队的能力,让AI助手能够处理更专业的研究任务,那么自定义智能体技能开发就是你需要掌握的技能。想象一下,你的研究助手…...
进程与线程:操作系统中的“公司”与“员工”
进程与线程:操作系统中的“公司”与“员工”在操作系统的宏大叙事中,进程(Process)和线程(Thread)是两个最基础也最容易混淆的概念。很多初学者容易将它们混为一谈,认为它们只是“大任务”和“小…...
nanomsg深度解析:高性能消息传递库的架构设计与实战应用
nanomsg深度解析:高性能消息传递库的架构设计与实战应用 【免费下载链接】nanomsg nanomsg library 项目地址: https://gitcode.com/gh_mirrors/na/nanomsg nanomsg是一个轻量级、高性能的可扩展性协议库,实现了多种常见的消息传递模式࿰…...
开源社区运营:Qwen1.5-1.8B GPTQ自动回复GitHub Issues与生成Release Note
开源社区运营:用Qwen1.5-1.8B GPTQ自动回复GitHub Issues与生成Release Note 如果你在维护一个开源项目,下面这些场景你一定不陌生:每天打开GitHub,通知栏里又多了几十条未读Issues,有报Bug的,有提新功能想…...
IP6163光伏降压DC-DC芯片:MPPT硬件算法如何提升太阳能转换效率
1. IP6163光伏降压芯片:太阳能转换的智能引擎 第一次接触太阳能充电系统时,我遇到一个头疼的问题:明明阳光充足,充电效率却忽高忽低。后来发现是传统方案无法实时追踪太阳能板的最大功率点,导致能量白白浪费。这正是IP…...
5大场景全面解析SWE-bench:语言模型软件工程能力实战指南
5大场景全面解析SWE-bench:语言模型软件工程能力实战指南 【免费下载链接】SWE-bench SWE-Bench: Can Language Models Resolve Real-world Github Issues? 项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench 核心价值:为什么SWE-ben…...
如何免费体验完整的三国杀网页版:无名杀游戏指南
如何免费体验完整的三国杀网页版:无名杀游戏指南 【免费下载链接】noname 项目地址: https://gitcode.com/GitHub_Trending/no/noname 想要随时随地享受经典的三国杀对战乐趣吗?无名杀作为一款功能完整的网页版三国杀开源项目,为你提…...
避坑指南:Arduino驱动直流电机和舵机时,PWM信号那些容易翻车的事儿
Arduino电机控制避坑实战:PWM信号那些教科书没讲的细节 当你的Arduino风扇项目需要手动拨动叶片才能启动,或者舵机像得了帕金森一样不停抖动时,别急着怀疑人生——这可能是PWM信号在作祟。作为经历过无数电机控制翻车现场的老司机,…...
[具身智能-93]:ROS2除了用于机器人,还有哪些典型的应用场景?ROS2的神经系统连接功能,用于任何多节点(非多设备)互联的场景。
虽然 ROS (Robot Operating System) 的名字里带有“机器人”,但它的核心本质是一个基于发布/订阅模式的分布式通信中间件。随着 ROS 2 的成熟(特别是引入了 DDS 数据分发服务、增强的安全性和实时性),它的应用场景已经远远超出了传…...
