面试题58 - II. 左旋转字符串(easy)

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

示例 1:

输入: s = "abcdefg", k = 2
输出: "cdefgab"
示例 2:

输入: s = "lrloseumgh", k = 6
输出: "umghlrlose"


链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* reverseLeftWords(char* s, int n);
int main()
{
    int k;
    char * str =(char*)malloc(sizeof(char)*1000);
    memset(str,'\0',sizeof(char)*1000);
    gets(str)  ;
    printf("输入k的值");
    scanf("%d",&k);
    str = reverseLeftWords(str,k);
    puts(str);
}
char* reverseLeftWords(char* s, int n){
    int i ,k=0,len=strlen(s) ;
    char * ch =(char*)malloc(sizeof(char)*1000);
    memset(ch,'\0',sizeof(char)*1000);
    for(k=n;k<len;k++)
    {
        ch[k-n] = s[k];
    }
    for(i=0;i<n;i++)
    {
        ch[k-n+i]=s[i];
    }
    return ch;
}

JAVA

public static String reverseLeftWords(String s, int n) {
        String s1 ="";
        String s2 ="";
        if(1<=n && n<s.length())
        {
             s1 =s.substring(n);
             s2 =s.substring(0, n);
            
        }
        
        return s1+s2 ;
    }

猜你喜欢

转载自www.cnblogs.com/cocobear9/p/12750646.html