判断一个字符串是否为另外一个字符串旋转之后的字符串

0人阅读 评论(0) 收藏 举报
分类:

判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abcd和s2 = ACBD,返回0.

AABCD左旋一个字符得到ABCDA
AABCD左旋两个字符得到BCDAA

AABCD右旋一个字符得到DAABC
方法一

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int  len(char arr[])
{
    int i;
    for ( i = 0; arr[i] != '\0'; i++)
        ;
    return i;
}
int Isswap(char *str, char *sub)
{
    char *p = malloc(strlen(str) + strlen(str) + 1);
    strcpy(p, str);
    strcat(p, str);//strcat()函数是字符串拼接函数,结果为abcdefabcdef
    if (strstr(p, sub) == NULL)//strstr()函数,参数为两个字符串,进行字符串循环比较,如果p中不存在sub字符串,则返回NULL
        return 0;
    return 1;
}
int main()
{
    char arr[] = "abcdef";
    char arr1[] = "cdefab";
    int r = Isswap(arr, arr1);
    if (r == 1)
        printf("1.找到\n");
    else
        printf("0.没有\n");
    system("pause");
    return 0;

}

方法二

#include<stdio.h>
#include<stdlib.h>
int swap(char arr[],char arr2[], int z)
{
    int s = z-3;
    for (int i = 0; i < z-2; i++)
    {
        int count = 0;
        char t = arr[i];
        arr[i] = arr[z - 1 - s];
        arr[z - 1 - s] = t;
        s--;
        for (int i = 0; i < z - 1; i++)
        {
            if (arr[i] == arr2[i])
                count++;
        }
        if (count == z - 1)
            return 1;
    }
    return 0;
}
int main()
{
    char arr[] = "ABCD";
    char arr2[] = "CDAB";
    int z = sizeof(arr) / sizeof(arr[0]);
    int ret = swap(arr,arr2, z);
    printf("对比的结果为:%d", ret);
    system("pause");
    return 0;
}

第一种方法比较简单,也便于理解,重要的是对字符串函数有所了解。如果知道可以直接调用。

查看评论

判断一个字符串是否为另一个旋转之后的字符串

判断一个字符串是否为另一个旋转之后的字符串
  • zhu_931
  • zhu_931
  • 2016-12-08 21:14:33
  • 147

判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.

#include #include #include int judge(char str1[],char str2[]) { int i = 0; int j = 0; ...
  • qq_39947431
  • qq_39947431
  • 2017-11-05 12:48:17
  • 270

C语言:判断一个字符串是否为另外一个字符串旋转之后的字符串。(左旋右旋、求子串)

法1:    判断是否是其左旋再判断是否是右旋。#include #include #include void Reverse(char* left, char* right) {     while...
  • hanjing_1995
  • hanjing_1995
  • 2016-05-30 17:14:38
  • 319

【c语言】判断一个字符串是否为另外一个字符串旋转之后的字符串

// .判断一个字符串是否为另外一个字符串旋转之后的字符串。 // 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0 #include ...
  • zhaoyaqian552
  • zhaoyaqian552
  • 2015-07-04 10:03:30
  • 1030

判断一个字符是否是另一个字符的旋转字符串

 方法一:将字符串1与字符串1连接,再判断字符串2是否为连接后的字符串1的子字符串,可以使用库函数实现。 #include #include #include void revovle(...
  • ranxiaoxu123
  • ranxiaoxu123
  • 2015-09-15 16:58:57
  • 502

判断一个字符串是否为另外一个字符串左旋或右旋之后的字符串

题目:       判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = abcdef和s2 = cdefab,返回1,给定s1=abcd和s2=ACBD,返回0.abcdef左旋一...
  • ttyue_123
  • ttyue_123
  • 2016-08-09 21:41:23
  • 278

【C语言】判断一个字符串是否是一个字符串的旋转字符串

//判断一个字符串是否是一个字符串的旋转字符串 //利用库函数实现 #include #include #include int IsRotate(char *str1, const char ...
  • doudouwa1234
  • doudouwa1234
  • 2015-07-04 09:26:10
  • 684

【原创】演示判断一个字符串是否为另一字符串的子串的函数的汇编源程序

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;功能: 演示判断一个字符串是否为另一字符串的子串的函数;作者: 黄志斌 于 广西河池;日  ...
  • Purpleendurer
  • Purpleendurer
  • 2004-12-29 10:26:00
  • 2141

判断某个字符串是否为另一个字符串旋转之后得到的

判断某个字符串是否是另一个字符串旋转之后得到的 思路一:将其中一个字符串进行左旋(或右旋),每旋转一次进行比较。 取任意一个字符串(str1)进行左旋(或右旋)操作,每左旋(或右旋)一位...
  • yinhaijing_ss
  • yinhaijing_ss
  • 2018-01-23 23:35:23
  • 38

判断一个字符串是否为另一个字符串的旋转后的子字符串

题目: 假定我们现在又一个函数isSubString(const string& str1, const string& str2)能够判断出字符串str2是否为str1的子串,那请给出一个方法能够...
  • acaiwlj
  • acaiwlj
  • 2013-09-08 11:23:54
  • 1122
    个人资料
    等级:
    访问量: 148
    积分: 120
    排名: 116万+
    文章分类
    文章存档