卡码网55:右旋字符串


思路:

和LeetCode151思路类似

①整体翻转

②前k个翻转

③后k个翻转

c 复制代码
#include<stdio.h>
#include<string.h>
void reverse(char *s,int L,int R)
{
    int len=R-L+1;
    int j=R;
    for(int i=L;i<L+len/2;i++)
    {
        char tmp=s[i];
        s[i]=s[j];
        s[j--]=tmp;
    }
}
int main()
{
    char str[10000];
    //1.接收字符串和正整数k
    //printf("请输入正整数k\n");
    int k;
    scanf("%d\n",&k);
    //printf("请输入一个字符串:\n");
    fgets(str,sizeof(str),stdin);
    // 去掉末尾的换行符(如果有)
    str[strcspn(str, "\n")] = '\0';
    //2.获取字符串长度
    int len=strlen(str);
    //3.整体翻转
    reverse(str,0,len-1);
    //4.局部翻转
    reverse(str,0,k-1);//前k个
    reverse(str,k,len-1);//后k个
    //3.输出字符串
    printf("%s\n",str);
    return 0;
}
相关推荐
qczg_wxg8 分钟前
高阶组件介绍
开发语言·javascript·react native·ecmascript
CHANG_THE_WORLD31 分钟前
C++ 并发编程指南 实现无锁队列
开发语言·c++·缓存·无锁队列·无锁编程
这里没有酒32 分钟前
[C语言] 结构体 内存对齐规则 内存大小计算
c语言·开发语言
橙序员小站34 分钟前
搞定系统面试题:如何实现分布式Session管理
java·后端·面试
叫我阿柒啊42 分钟前
从Java全栈到Vue3实战:一次真实面试中的技术探索
java·数据库·spring boot·微服务·typescript·vue3·restful
CHANG_THE_WORLD43 分钟前
C++ 内存模型:用生活中的例子理解并发编程
开发语言·c++·生活
武子康1 小时前
Java-118 深入浅出 MySQL ShardingSphere 分片剖析:SQL 支持范围、限制与优化实践
java·大数据·数据库·分布式·sql·mysql·性能优化
闯闯桑1 小时前
toDF(columns: _*) 语法
开发语言·前端·spark·scala·apache
滴滴滴嘟嘟嘟.1 小时前
Qt图表功能学习
开发语言·qt·学习
charlie1145141911 小时前
Android开发——初步了解AndroidManifest.xml
android·xml·开发语言·学习·安卓·安全架构