H面试程序(9): 左旋字符串

Java集合容器面试题(2026版) 序列号 内容 链接 1 Java基础知识面试题(2022版) https://blog.csdn.net/qq_43061290/article/details/124023797 2 Java集合容器面试题(2022版) 待续… https://editor.csdn.net/md?spm=1001.2101.3001.5352&articleId=124043363 3 Java异常面试题(2022版) 待续… 4 并发编程面试题 (2022版) 待续… 5 JV.... 阅读详情

 

题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 

如把字符串abcdef左旋转2位得到字符串cdefab。 

请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。 

 

 

#include<stdio.h>
#include<iostream.h>

void swap(char & a, char &b)
{     
	  char temp;
      temp = a;
      a = b;
	  b =temp;
}
 
void reverse(char *s, int start, int  end )
{  
	int j = end,i =start;

	for( ; i<=(start+(end -start)/2);i++)
	{       
		    swap(s[i],s[j]);
			j--;
	}
    
}
void leftshift(char * s , int strlen, int num_leftshift) //通过三次翻转
{
   reverse(s, 0, num_leftshift-1);
   reverse(s, num_leftshift,strlen-1);
   reverse(s, 0,strlen-1 );
     
}

int main()
{
	char s[ ] = "little things make life beautiful!";
    cout<<"before leftshift the string is:"<<s<<endl;

	int strlen = sizeof(s)/sizeof(char)-1;
	int num_leftshift;
	printf("please input the number you want to leftshift:  ");
	scanf("%d",&num_leftshift);



	
	num_leftshift = num_leftshift%strlen;//允许翻转的位数大于字符串长度,做一个取余运算
	leftshift(s,strlen, num_leftshift );
	cout<<"after leftshift  the string is:"<<s<<endl;

	return 0;

}

STM32 Modbus-RTU从零到实战:手把手教你用HAL库实现工业通信(附完整代码) 本文详细介绍了如何使用STM32 HAL库从零开始实现Modbus-RTU从机通信。内容涵盖RS485硬件设计、CubeMX串口与定时器配置、基于空闲中断的高效数据接收、协议栈状态机设计、CRC16校验实现以及常用功能码处理。文章提供了完整的代码框架和调试方法,帮助开发者快速构建稳定的工业通信节点。 阅读详情

相关推荐

Zynq UltraScale+ MPSoC-AMP(linux+裸机)

接着 Zynq UltraScale+ MPSoC-双核裸机AMP继续 平台工具:zcu106,vitis2020.2,petalinux2019.2 文章目录1.cpu1跑裸机2.cpu0跑linux2.1petalinux设置2.2 app3.生成BOOT.bin4.zcu106测试 1.cpu1跑裸机 参照Zynq UltraScale+ MPSoC-双核裸机AMP建立的工程进行修改。BSP中stdin与out修改为uart1,uart1给裸机用,uart0给linux用。 ddr空间裸机与linu

zhuxl24的博客 5195

左旋字符串的题解

第一种解法 public class Solution { //在做这道题的时候,首先先将字符串转换为字符数组的形式,写一个函数进行一次左移, //在主函数中我们可以通过左移次数来进行循环左移在循环体中调用刚才写好的一次左移方法。 public static void swap(char[] ch){ char tmp = ch[0];//这里代表的是提前将要左移的字符取出来放到tmp临时变量中去,以方便后面的字符能够左移。 int i =0; for(;i<ch.length-1;i++){ ch.

qq_45169404的博客 195

基于Python适用于YOLO目标检测算法的图片数据增强处理

为了增强模型的鲁棒性以及数据的丰富性,同 时为了防止由于数据过少发生过拟合,本设计对数 据集进行数据增强处理,包括随机亮度调节、随机 对比度调节、随机饱和度调节、加入高斯噪声、水 平翻转、运动模糊和旋转 15°

weixin_67136409的博客 700

2019年 BET公司程序员面试必备:算法研究、编程艺术、红黑树、机器学习总结大全

一、微软面试100题系列 https://blog.csdn.net/v_JULY_v/article/details/6543438 A、横空出世,席卷Csdn--评微软等数据结构+算法面试100题 (微软面试100题系列原题+答案索引) B、微软100题 (微软面试完整第1-100题) C、微软面试100题2010年版全部答案集锦(含下载地址) D、全新整理:微软、谷歌、百度等...

WangY.H 1415

基于MOS的防反接电路

防反接电路一般用于电源入口处,在电源反接时,保证电源入口之后的电路不会受到损害。一般在电源电流较小、对1V左右的压降不敏感时可以使用二极管进行防反接。防反接的形式有直接在正极串联二极管(如图1),或使用整流桥的方式(如图2),但这两种方式均存在:1、存在二极管的管压降;2、过大电流时,二极管消耗的功率大,发热严重。这两个问题。 图 1 二极管防反接电路 图 2 整流管防反接电路 1、基于NMO...

qq_42682826的博客 2万+

腾讯游戏安全组件运行异常的全面解决方案

在使用腾讯游戏时,玩家可能会遭遇游戏安全组件运行异常的问题,这不仅影响游戏的正常启动,还可能在游戏过程中引发一系列问题。本文将详细介绍解决腾讯游戏安全组件运行异常的几种方法,帮助玩家重拾游戏乐趣。腾讯游戏安全组件运行异常是一个复杂的问题,可能涉及服务设置、游戏更新、系统环境优化以及硬件与驱动检查等多个方面。最后,希望本文能帮助玩家顺利解决腾讯游戏安全组件运行异常的问题,让玩家能够无忧无虑地享受游戏带来的乐趣。首先,我们需要从系统的服务管理入手,检查与游戏安全组件相关的服务是否正常运行。

nntxthml的博客 5811

[windows C/C++]面试准备(一)字符串类面试题1

马上要面试搜狗的windo

日线记录 996

从零到一:基于GeneMark-ES/ET的新基因组注释实战指南

本文提供了一份基于GeneMark-ES/ET的新基因组注释实战指南。详细介绍了从环境搭建、数据准备到核心运行的全流程,重点解析了ES(从头预测)与ET(结合RNA-Seq证据)两种模式的选择与操作,并分享了Perl模块依赖、并行处理等常见问题的解决方案,帮助生物信息学研究者高效完成基因预测工作。

weixin_29266647的博客 209

字节研发社招面经,3轮技术面+1轮hr面

6、怎么理解高可用,如何保证高可用,有什么弊端,熔断机制,怎么实现?5、redis有序集合怎么实现的,跳表是什么,往跳表添加一个元素的过程,添加和获取元素,获取分数的时间复杂度,为什么不用。解决的核心问题是什么?8、一般你们怎么建mysql索引,基于什么原则,遇到过索引失效的情况么,怎么优化的?7、对于高并发怎么看,怎么算高并发,你们项目有么,如果有会产生什么问题,怎么解决?11、说一个你解决的印象深刻的线上问题,如何发现的?3、团队的组织架构,自己所在的团队有多少人,分工是怎么样的,自己负责哪部分的。

胡别致 . 6881

虚拟零售智能客服架构设计:如何用大模型实现多轮对话与精准推荐?

想象一下,当你在一个电商平台购物时,遇到了一个能像你的专属导购一样,不仅能听懂你模糊的需求(“我想买一件适合夏天去海边玩,又能兼顾日常通勤的裙子”),还能记得你之前提到的尺码偏好和预算,甚至在你犹豫时,主动推荐几款符合你风格且正好有促销活动的商品——这不再是科幻电影中的场景,而是基于大语言模型(LLM)技术的新一代虚拟零售智能客服能够提供的体验。这一层是我们架构设计的重点,会在后续章节详细展开。如基于CRF、RNN的模型,或基于规则的状态更新,通常需要大量标注的对话状态数据,且对新领域、新槽位的适应性差。

Java大师兄的博客 1589

USB驱动(URB)

本文介绍了Linux内核中USB驱动开发的核心概念URB(USB Request Block)。URB是主机与USB设备间传输数据的抽象结构体,包含目标设备、端点信息、数据缓冲区等关键字段。文章详细解析了URB的生命周期(分配、填充、提交、回调、释放)、四种传输类型(控制、批量、中断、等时)及其应用场景,并提供了鼠标设备的中断传输示例代码。最后强调了URB使用注意事项,包括DMA缓冲区分配、错误处理和资源释放等。URB作为USB驱动与内核通信的桥梁,是构建稳定USB驱动程序的基础。

m0_49476241的博客 915

二十万字C/C++、嵌入式软开面试题全集宝典十一

目录 1、 红黑树的性质 2、 红黑树的插入与旋转 3、 红黑树与平衡二叉树 4、 二叉平衡树、红黑树、B树、B+树的区别与联系 5、 hello world 程序开始到打印到屏幕上的全过程? 1、 红黑树的性质 性质1.节点是红色或黑色。 性质2.根节点是黑色。 性质3.每个叶子节点都是黑色的空节点(NIL节点)。 性质4.每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 性质5.从任一节点到其每个叶子的所有路.

qq_41687938的博客 536

OpenClaw实战-行政与HR必备:AI驱动的办公自动化

智能会议纪要自动生成会议时间智能协调自动提醒和跟进简历智能筛选和匹配度分析面试安排自动化入职办理流程化通知公告一键发布发票识别和报销辅助资产管理数字化让AI处理繁杂的事务性工作,让您有更多时间专注于更有价值的战略和管理任务。

gaoxiang_120的专栏 220

Java面试高效突击指南:核心模块、高频考点与实战策略

在软件开发领域,Java作为主流编程语言,其技术栈涵盖基础语法、集合框架、并发编程、JVM原理及主流框架等核心模块。理解这些模块的原理是构建稳定、高效应用的基础。例如,并发编程中的线程池通过复用线程资源提升系统性能,其核心参数和工作流程是面试高频考点;JVM的垃圾回收机制则关乎应用的内存管理与性能表现。掌握这些核心技术不仅能解决实际工程中的性能瓶颈和内存泄漏问题,更能帮助开发者在面试中系统性地展示知识体系。本文聚焦于Java面试中的核心模块与高频考点,提供了一套针对性的高效复习策略,帮助求职者快速构建知识框

weixin_33866037的博客 353

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

剑指offer题解 带讲解 python版 第一部分

目录1、二维数组查找2、替换空格3、从尾到头打印链表3、重建二叉树4、两个栈实现队列5、旋转数组最小数字6.斐波那契数列7、跳台阶8 变态跳台阶9、矩形覆盖10、二进制中1的个数11、整数次方13、o(1)时间内删除链表节点14、调整数组奇数位于偶数前面,并保证相对位置15、链表倒数第k个节点16、链表反转17、合并两个有序链表18、树的子结构19、求二叉树的镜像20、螺旋打印矩阵21、包含min...

weixin_43167121的博客 1637

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数据结构核心考点精讲:从B树到哈希表,备战考研与面试

数据结构是计算机科学中组织与管理数据的核心基础,其核心价值在于通过高效的数据组织方式,为算法提供操作对象,从而提升程序的运行效率与资源利用率。从数组、链表等基础物理结构,到栈、队列等逻辑抽象,再到树、图等复杂模型,每一种数据结构都对应着特定的问题场景与性能权衡。在工程实践中,哈希表通过哈希函数与冲突解决策略(如链地址法)实现了接近常数的查找效率,而B树与B+树则因其多路平衡特性,成为数据库索引等磁盘I/O密集型应用的首选。理解这些核心概念、原理及其在系统设计(如缓存、索引)中的应用,是构建扎实计算机基础、应

weixin_34129696的博客 597

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

我的九月学习之路

本人准大三,暑假从劝退专业开始转码 九月给自己立一个falg:学完6.006! 欢迎大家监督!

cxztr的博客 557

UIUC CS225数据结构与C++实践:从理论到实现的完整学习路径

数据结构是计算机科学的核心基础,它研究数据的组织、存储和操作方式,旨在提升程序运行效率。其核心原理在于通过特定的逻辑结构(如线性表、树、图)和物理存储结构,结合算法实现对数据的高效管理。掌握数据结构的技术价值在于能够为复杂问题设计出最优的解决方案,直接影响软件的性能与可扩展性,广泛应用于数据库索引、网络路由、编译器设计及人工智能等领域。本文聚焦于UIUC CS225这门将数据结构理论与C++工程实践深度结合的经典课程,通过剖析其如何引导学生从零开始实现链表、二叉搜索树、哈希表等核心数据结构,直面**内存管理

weixin_34056162的博客 410

集合框架 (六)

Java集合框架是存储和操作数据的核心工具,分为单列集合Collection和双列集合Map两大体系。Collection包括List(有序可重复)、Set(无序不重复)和Queue(队列);Map存储键值对,Key唯一。常用实现类有ArrayList、LinkedList、HashSet、HashMap等,各有特点:ArrayList基于动态数组查询快,LinkedList基于链表增删快,HashSet去重,HashMap键值映射高效。集合提供了丰富的API和遍历方式,支持泛型保证类型安全。开发中需注意线

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 240

数据结构中树的概念、性质与应用全解析

树是计算机科学中一种重要的非线性数据结构,它通过节点和边模拟了现实世界中的层次关系。从数学定义看,树是由节点组成的有限集合,具有连通无环的特性,这使得它在处理递归问题时尤为高效。在技术实现上,树结构通过指针或数组存储,支持高效的查找、插入和删除操作。常见的树类型包括二叉树、B树和Trie树等,它们被广泛应用于文件系统、数据库索引和机器学习等领域。特别是在大数据和人工智能时代,平衡二叉树和决策树等结构展现出强大的数据处理能力。理解树的基本原理和遍历方法,是掌握算法设计和系统优化的基础。

weixin_34332905的博客 348

数据结构填空题 200 题(超详细答案与解析)

本文系统整理了200道数据结构填空题及其详细解析,覆盖了数据结构课程的核心知识点,包括基本概念、线性表、栈与队列、串与数组、广义表、树与二叉树、图、查找、排序及综合应用。每道题均附有标准答案和解析,帮助理解公式来源、运算过程和易错点。文章建议先自主作答再对照解析查漏补缺,通过牢固掌握这些题目,可在期末考试填空题部分做到不失分。适用于期末复习或考研准备,是全面掌握数据结构核心概念的高效资源。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 137

算法题笔记

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。如果遍历数组,把数放到另一个数组而不是哈希表,数组无法瞬间找到目标值,时间复杂度还是降不下来,内存占用也多了。它们的区别是遍历数由小到大还是由大到小。

Jesui的博客 557

H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒

编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。 如输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005年 1 月 1 日 0 时 0 分 0 秒。 void ResetTheTime(int *year,int *month,int *date,int *hour,int *minute,int*second) { int

linuxlinuxlinuxlinux的专栏 6191

H面试(23):求子数组最大和

题目描述: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此输出为该子数组的和18。   #include #include #include

linuxlinuxlinuxlinux的专栏 2600

H面试程序3:去除字符串中多余的空格

比如“_ _I_ _ _Lu_ _ _  _you_ _ _ _ _ _”变成“I_ Lu_you”       #include #include //50min void RemoveExtraSpace(char* str) { assert(str); int flag = 1; //之前已经遇到空格 int newp = 0; int i

linuxlinuxlinuxlinux的专栏 2151

H面试程序(11): 判断字符串是否包含子串问题

题目描述:                        如字符串str1为''abcdef'''                       字符串str2为'' bc''; 则字符串str1中含有字串str2;       #include #include #include #include int Whether_Is_Substring(char* str

linuxlinuxlinuxlinux的专栏 2128
上一篇: H面试程序(8):不含重复字母的字符串的全排列
下一篇: H面试程序(10): 字符串包含问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值