首页 > 其他分享 >字符串左旋解法

字符串左旋解法

时间:2023-06-10 17:01:25浏览次数:39  
标签:arr right int len char 字符串 左旋 解法 left

void left_move1(char* arr)
{
assert(arr);
int n = 0;
int i = 0;
int len = strlen(arr);
printf("请输入左旋转位数:");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
char tmp = *arr;//拿出首元素
int k = 0;
for(k = 0; k < len - 1;k++)//len-1 防止arr[j+1]越界访问
{
arr[k] = arr[k+1];//完成其他元素前移
}
*(arr + len - 1) = tmp;//第一个元素放到最后
}

}
void reverse(char* left, char* right)//逆序
{
assert(left != NULL);
assert(right != NULL);
while (left < right)
{
int tmp = *(left);
*(left) = *(right);
*(right) = tmp;
left++;
right--;
}
}

void left_move2(char* arr)
{
assert(arr);
int len = strlen(arr);
int n = 0;
printf("请输入左旋转位数:");
scanf("%d", &n);
n = n % len;//防止左旋位数大于字符串,导致重复计算
reverse(arr,arr+n-1);//逆序左边n位
reverse(arr+n,arr+len-1);//逆序右边
reverse(arr,arr+len-1);//逆序整体

}
int main()
{
char arr[] = "abcdef";
left_move1(arr);//字符串左旋转 方案一
left_move2(arr);//方案二
printf("%s\n", arr);
return 0;
}

标签:arr,right,int,len,char,字符串,左旋,解法,left
From: https://www.cnblogs.com/zrk-8008/p/17471546.html

相关文章

  • 力扣---1170. 比较字符串最小字母出现频次
    定义一个函数 f(s),统计 s 中(按字典序比较)最小字母的出现频次,其中s 是一个非空字符串。例如,若 s="dcce",那么 f(s)=2,因为字典序最小字母是 "c",它出现了 2次。现在,给你两个字符串数组待查表 queries 和词汇表 words。对于每次查询 queries[i],需统计words中......
  • Python连接两个字符串并去除首尾重复子串
    代码功能:查找两个字符串的首尾重复部分最大长度,连接两个字符串,并去除两个字符串的首尾重复部分。例如,1234和2347这两个字符串,前面字符串的234子串和后面字符串的234字串重复,两个字符串连接成为12347。参考代码与运行结果:......
  • 2022-2023 春学期 矩阵与数值分析 C7 常微分方程的数值解法
    2022-2023春学期矩阵与数值分析C7常微分方程的数值解法原文C7常微分方程的数值解法问题描述一阶常微分方程的初值问题\[\left\{\begin{array}{l}u'=f(t,u),\;a\leqt\leqb\\u(a)=u_0\end{array}\right.\]解的存在唯一性:若\(f(t,u)\)满足Lipschitz条件,即存在......
  • 字符串转换数字,sscanf和sprintf大法
    题目链接:P1957口算练习题-洛谷|计算机科学教育新生态(luogu.com.cn)sscanf(str,"%d",&n)其实就是把str的内容以"%d"的格式写入到n中(从左到右)同理sprintf(str,"%d",n)就是把n以"%d"的格式写入到str(从右到左)#include<bits/stdc++.h>usingnamespacestd;constint......
  • Python+Matplotlib+MiKTex设置标签字符串中任意字符格式
    任务描述:在使用matplotlib可视化时,title()、xlabel()、ylabel()、xticks()、yticks()或类似的函数和方法中的字符串首尾加符号“$”,可以调用matplotlib内嵌的Latex引擎进行渲染,例如:Python+matplotlib调用LaTex引擎渲染公式Python+matplotlib绘图使用Latex引擎渲染坐标轴刻度文本上......
  • 2023.6.10 比较字符串最小字母出现频次
    首先按照题意把f(str)这个函数实现出来。可以考虑用哈希表+sort来实现。然后根据题目的数据范围,一个字符串最长为2000,可以知道,\(f(str)\in[1,2000]\)。所以可以考虑用前缀和来处理,定义一个长度为2001的数组s,用来作为前缀和数组,\(s[i]\)表示f值小于等于i的字符串个数。每一......
  • 十六进制字符串转十进制
    十六进制转换在上位机通讯中必然会用到:字符串格式的十六进制,如011E,这里是2个字节,十六进制高位在前,低位在后,而数组存储则相反,前面为0,后面为高位如"011E"01为高位,1E为低位,而字符串数组存储则是data="011E"data[0]='0'data[1]='1'data[2]='1'data[3]='E',因此在逐为相加......
  • Python字符串注意啦!
    注意在进行python里面进行比较时,一定要先看好比较双方的类型,如果我们想要比较的是字符串,第二项就一定要定义成字符串类型;例如:#这就是一个错误典型aa.get()==1#这个就会显示出False#我们需要将其改成这样aa.get()=='1'#这样才能够显示出True真的会谢!记住啦!......
  • Python查找任意字符串中只出现一次的字符(2016奇虎笔试题)
    '''  程序功能:  编写函数,给定任意字符串,找出其中只出现一次的字符,  如果有多个这样的字符,就全部找出。'''importsysdefsearchOne(s):#创建空字典d=dict()#遍历字符串,并分别记录每个字符的出现次数forchins:#这里重点演示字典的ge......
  • Python字符串处理小案例
    连续5天30个小时的Python培训圆满结束,明天早上5点半出发赶飞机回烟台,晚上收拾行李的时候突然想起来20年前做过的一个C语言题目:假设有一个字符串,里面有若干字母o。要求如下:从前到后扫描,把每个字符删除并追加至字符串尾部,如果遇到字母o就删除,直至字符串处理结束。本文代码主要演示字......