当前位置:网站首页>【剑指offer】左旋字符串,替换空格,还有类题!!!

【剑指offer】左旋字符串,替换空格,还有类题!!!

2022-08-11 09:04:00 tt142

目录

1.左旋字符串

2.类题

3. 替换空格


1.左旋字符串

 

//左旋字符串
void reverse(char* str, int left, int right)
{
    while (right - left > 0)
    {
        char c = str[left];
        str[left++] = str[right];
        str[right--] = c;
    }
}
char* LeftRotateString(char* str, int n) {
    int len = strlen(str);
    if (len < n && len != 0)
        n = n % len;
    reverse(str, 0, n - 1);
    reverse(str, n, len - 1);
    reverse(str, 0, len - 1);
    return str;
}


2.类题

 左旋词会了看一道类题吧

 

#include<stdio.h>
#incldue<string.h>
int main() {
    int n, m;
    char str1[100001];
    char str2[100001];
    char str[200003];
    scanf("%d %d", &n, &m);
    scanf("%s%s", str1, str2);
    if (n != m) {
        printf("NO\n");
        return 0;
    }
    strcat(str, str1);
    strcat(str, str1);
    char* p = strstr(str, str2);
    //if(FUN(str,str2))
    if (p)
        printf("YES");
    else
        printf("NO\n");
}

3. 替换空格

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return string字符串
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
char* replaceSpace(char* s ) {
    // write code here
    int count=0;
 char ans[10001]={0};
    for(int i=0;*s!='\0';){
        if(*s==' ')
        {ans[i++]='%';ans[i++]='2';ans[i++]='0';}
        else
            ans[i++]=*s;
      s++;
    }
   // ans[0]='\0';
    return ans;
}


创作不易,感谢观看 

原网站

版权声明
本文为[tt142]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_71138261/article/details/126271606