zoukankan      html  css  js  c++  java
  • 字符串旋转问题

    1.字符串左旋转k个字符,

    思想:很简单,写两个for循环,外层是控制旋转的次数,内层就是旋转,每次将第一个元素赋给临时变量,在内层循环中将后一个元素赋给前一个元素,内层循环结束,将临时变量赋给字符串最后一元素的位置。下面详见代码

    void anticlockwise(char ch[], int k){
        if (k > strlen(ch) || k == 0){
            printf("输入错误:
    ");
            return;
        }
        for (int i = 0; i < k; i++){
            char tmp = ch[0];
            for (int j = 0; j < strlen(ch) - 1; j++){
                ch[j] = ch[j + 1];
            }
            ch[strlen(ch) - 1] = tmp;
        }
        printf("%s
    ", ch);
    }

    2.判断字符串旋转后是否和另一个元素是否相等,相等返回1,否则返回0

    思想:和上面所述问题思想大概一致,这次的外层循环控制条件是字符串1的长度,内层循环结束后判断旋转后的结果是否和字符串2相等,如果相等直接返回1,不相等继续遍历,当吧外层循环遍历完后,木有相等的,那么直接返回0,详见代码

    int anticlockwiseIsEqual(char ch1[], char ch2[]){
        for (int i = 0; i < strlen(ch1); i++){
            char tmp = ch1[0];
            for (int j = 0; j < strlen(ch1) - 1; j++){
                ch1[j] = ch1[j + 1];
            }
            ch1[strlen(ch1) - 1] = tmp;
            if (strcmp(ch1, ch2) == 0){
                return 1;
            }
        }
        return 0;
    }
  • 相关阅读:
    344.反正字符串
    125.验证回文串
    167.两数之和 II
    278.第一个错误的版本
    缓冲流
    Windows10剪贴板不能用
    chapter_21【字节流、字符流】
    属性集
    IO异常的处理
    字符流
  • 原文地址:https://www.cnblogs.com/du001011/p/10247639.html
Copyright © 2011-2022 走看看