卡码网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;
}
相关推荐
失散132 小时前
分布式专题——49 SpringBoot整合ElasticSearch8.x实战
java·spring boot·分布式·elasticsearch·架构
bin91532 小时前
PHP文档保卫战:AI自动生成下的创意守护与反制指南
开发语言·人工智能·php·工具·ai工具
悟能不能悟2 小时前
java格式化BigDecimal為#,###,##0.00
java·css·css3
歪歪1002 小时前
解决多 Linux 客户端向 Windows 服务端的文件上传、持久化与生命周期管理问题
linux·运维·服务器·开发语言·前端·数据库·windows
Ryan ZX2 小时前
【Go语言基础】序列化和反序列化
开发语言·后端·golang
Seven972 小时前
剑指offer-36、两个链表的第⼀个公共节点
java
helloworddm2 小时前
Java和.NET的核心差异
java·开发语言·.net
SimonKing2 小时前
为什么0.1 + 0.2不等于0.3?一次讲透计算机的数学“Bug”
java·数据库·后端
学习编程的Kitty2 小时前
JavaEE初阶——JUC的工具类和死锁
java·开发语言
chinesegf2 小时前
[特殊字符] 常用 Maven 命令
java·spring boot·maven