Day33~实现一个算法来识别一个字符串。

实现一个算法来识别一个字符串str2是另一个字符串str1的排列。排列的解释如下:如果将str1的字符拆分开,重新排列后再拼接起来,能够得到str2,那么就说字符串str2是字符串str1的排列。(不忽略大小写)如果str2字符串是str1字符串的排列,则输出 YES;如果str2字符串不是str1字符串的排列,则输出NO。

cpp 复制代码
#include <stdio.h>
#include <string.h>

#define MAX_SIZE 100

void judge_str(char *str1, char *str2)
{
    int str1_len = strlen(str1);
    int str2_len = strlen(str2);

    // 将str1进行排序
    for (int i = 0; i < str1_len; i++)
    {
        for (int j = 0; j < str1_len - 1 - i; j++)
        {
            if (str1[j] > str1[j + 1])
            {
                int temp = str1[j];
                str1[j] = str1[j + 1];
                str1[j + 1] = temp;
            }
        }
    }

    // 将str2进行排序
    for (int i = 0; i < str2_len; i++)
    {
        for (int j = 0; j < str2_len - 1 - i; j++)
        {
            if (str2[j] > str2[j + 1])
            {
                int temp = str2[j];
                str2[j] = str2[j + 1];
                str2[j + 1] = temp;
            }
        }
    }

    // 将str1和str2进行比较
    if (strcmp(str1, str2) == 0)
    {
        printf("YES\n");
    }
    else
    {
        printf("NO\n");
    }
}

int main()
{
    char str1[MAX_SIZE] = {0};
    char str2[MAX_SIZE] = {0};

    scanf("%s", str1);
    scanf("%s", str2);

    judge_str(str1, str2);

    return 0;
}
相关推荐
冻柠檬飞冰走茶1 小时前
PTA基础编程题目集 7-19 支票面额(C语言实现)
c语言·开发语言·数据结构·算法
你怎么知道我是队长1 小时前
计算机虚拟存储管理与页面置换算法详解
服务器·网络·算法
罗西的思考1 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 — (14)— Teacher
人工智能·笔记·深度学习·算法·机器学习
塔能物联运维2 小时前
塔能两相液冷:600W/cm²极限能力,为下一代AI芯片预留充足散热余量
人工智能·算法·两相液冷
醉城夜风~2 小时前
手撕 C++ string:从零实现一个简易字符串类
开发语言·c++·算法
手写码匠2 小时前
华为云Flexus+DeepSeek征文|DeepSeek+RAG知识库实战:基于Flexus X实例与Dify构建企业级智能问答系统
人工智能·深度学习·算法·aigc
青山木3 小时前
Hot 100 --- 组合总和
java·数据结构·算法·leetcode
caishenzhibiao3 小时前
顺势交易矩阵主图 同花顺期货通指标
java·c语言·c#
zander2583 小时前
LeetCode 46. 全排列
算法·leetcode·深度优先
星恒随风4 小时前
C++ STL 详解:set 与 multiset 的使用、区间查询和算法应用
开发语言·c++·笔记·学习·算法