每日一题——左旋转的字符串

简介: 每日一题——左旋转的字符串

左旋转的字符串

题目链接

思路

  • 做了昨天的反转字符串里的单词我们知道了,在做字符串相关的题目时,可以考虑字符串的部分反转,即先反转字符串的一部分,再反转字符串的另一部分
  • 这道题也是如此。我们就拿字符串“abcdefg”和数字2举例,我们可以将这个字符串分成两部分,即前面两个字符和后面剩下的字符,我们分别对其进行反转得到了字符串“bagfedc”,最后我们再对整个字符串反转,就得到了我们想要的结果“cdefgab”

具体步骤

void Part_reverseWords(char * s, int left, int right)
{
    while(left <= right)
    {
        char temp = s[left];
        s[left] = s[right];
        s[right] = temp;
        left++;
        right--;
    }
}
  • 对字符串前n个字符进行反转,再对余下的字符反转
  • 最后对整个字符串反转
  • 返回反转后的字符串

实现代码

void Part_reverseWords(char * s, int left, int right)
{
    while(left <= right)
    {
        char temp = s[left];
        s[left] = s[right];
        s[right] = temp;
        left++;
        right--;
    }
}
char* reverseLeftWords(char* s, int n){
    int len = strlen(s);
    Part_reverseWords(s,0,n-1);   //对字符串前n个字符进行反转
    Part_reverseWords(s,n,len-1); //对余下的字符反转
    Part_reverseWords(s,0,len-1); //对整个字符串反转
    return s;
}


相关文章
|
4月前
|
C++ Python
leetcode-513:找树左下角的值
leetcode-513:找树左下角的值
20 0
|
2月前
|
存储 算法
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
|
5月前
|
C语言
C语言第四十二弹---使用多种方法实现字符串左旋转
C语言第四十二弹---使用多种方法实现字符串左旋转
|
5月前
|
Java
【剑指offer】-顺时针打印矩阵-19/67
【剑指offer】-顺时针打印矩阵-19/67
|
5月前
|
Java
每日一题《剑指offer》数组篇之顺时针打印矩阵
每日一题《剑指offer》数组篇之顺时针打印矩阵
30 0
每日一题《剑指offer》数组篇之顺时针打印矩阵
|
11月前
力扣旋转字符串
力扣旋转字符串
54 0
|
11月前
左旋转字符(力扣刷题)
左旋转字符(力扣刷题)
|
11月前
剑指offer 28. 顺时针打印矩阵
剑指offer 28. 顺时针打印矩阵
38 0
LeetCode 5868. 可互换矩形的组数
用一个下标从 0 开始的二维整数数组 rectangles 来表示 n 个矩形,其中 rectangles[i] = [widthi, heighti] 表示第 i 个矩形的宽度和高度。
59 0
|
存储 Python
LeetCode 513. 找树左下角的值
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
32 0

热门文章

最新文章