剑指Offer42 左旋字符串
2024-10-20 06:30:54
/*************************************************************************
> File Name: 42_LeftRotateString.c
> Author: Juntaran
> Mail: JuntaranMail@gmail.com
> Created Time: 2016年09月04日 星期日 16时31分43秒
************************************************************************/ #include <stdio.h>
#include <string.h> // 反转单词
void ReverseWord(char* left, char* right)
{
if (left== NULL || right==NULL)
return;
while (left < right)
{
char temp = *left;
*left = *right;
*right = temp; left ++;
right --;
}
} void LeftRotateString(char* str, int n)
{
if (str == NULL || n<=)
return str; int length = strlen(str);
// n可能超过字符串长度
n = n % length; // 第一部分
char* FirstStart = str;
char* FirstEnd = str + n - ; // 第二部分
char* SecondStart = str + n;
char* SecondEnd = str + length - ; // 先反转第一部分
ReverseWord(FirstStart, FirstEnd);
// 再反转第二部分
ReverseWord(SecondStart, SecondEnd);
// 整体反转
ReverseWord(FirstStart, SecondEnd);
} int main()
{
char str[] = "abcdefg";
int n = ; LeftRotateString(str, n);
printf("%s\n", str);
}
最新文章
- mysql benchmark基准测试
- 数据库(Database)
- SCALA XML pattern attrbute(属性)
- Jetty安装
- c与c++中的extern const的区别和联系
- Python创建list和按照索引访问list
- NDK(19)简单示例:ndk调用java基本方法、数组;使用stl、访问设备
- jquery在线引用的地址
- URAL1079
- load &; get 加载方式
- [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
- Asp.NetCore轻松学-使用Supervisor进行托管部署
- python类与对象-如何派生内置不可变类型并修其改实例化行为
- 复制程序到notepad++编辑器出现乱码的解决方法
- SpringBoot处理日期转换问题
- python os模块使用笔记(更新)
- Spring Cloud(Dalston.SR5)--Feign 声明式REST客户端
- HDU 3472 HS BDC (混合图的欧拉路径判断)
- C#操作Excel 单元格的格式处理[xyytIT]
- Docker 初相见
热门文章
- Visual Studio 2012 主题下的代码配色方案
- (剑指Offer)面试题36:数组中的逆序对
- Flex应用程序如何启动
- 5.迪米特法则(Law Of Demeter)
- zookeeper的安装和启动
- 实用的树形菜单控件tree
- Architecture of Device I/O Drivers, Device Driver Design
- A few things to remember while coding in Python.
- xshell 远程连接Linux
- c# 高效的线程安全队列ConcurrentQueue(下) Segment类