当前位置: 首页 > news >正文

华为机试_HJ27 查找兄弟单词【中等】

目录

描述

输入描述:

输出描述:

解题过程

提交代码

学习代码

代码一

收藏点


描述

定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。

兄弟单词要求和原来的单词不同。例如: ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。

现在给定你 n 个单词,另外再给你一个单词 x ,让你寻找 x 的兄弟单词里,按字典序排列后的第 k 个单词是什么?

注意:字典中可能有重复单词。

数据范围:1≤n≤1000 ,输入的字符串长度满足 1≤len(str)≤10  ,1≤k<n 

输入描述:

输入只有一行。 先输入字典中单词的个数n,再输入n个单词作为字典单词。 然后输入一个单词x 最后后输入一个整数k

输出描述:

第一行输出查找到x的兄弟单词的个数m 第二行输出查找到的按照字典顺序排序后的第k个兄弟单词,没有符合第k个的话则不用输出。

解题过程

我的思路是,设置一个二维数组用来存放兄弟单词。

1. 判断是否为兄弟单词(根据单词的长度是否相等,以及是否是原来的单词)

2. 如果是兄弟单词,存进二维数组中;

3. 把二维数组每一个行进行字典序排序,使用strcmp函数;

4. 输出二维数组中第k个兄弟单词,即第k行

提交代码

学习代码

代码一

(来源:https://blog.nowcoder.net/n/97fe91225e2247b9bd49cf22058488cc)

我觉得他和我的思路是一样的

#include <string.h>

int main()
{
    int x,i,j,k,n,num=1,cet=0,y,z;
    scanf("%d",&x);
     
    char str[x][12],word[12]={0},str1[x][12],temp[12];
    memset(str, '\0', sizeof(str));
    memset(str1, '\0', sizeof(str1));
    for(i=0;i<x;i++)
    {
        scanf("%s",&str[i]);
    }
    scanf("%s",word);
     scanf("%d",&z);
    for(i=0;i<10;i++)
    {
        if(word[i]!='\0')
            num*=word[i];
        else
            break;
    }
    for(j=0;j<x;j++)
    {   y=1;
        for(k=0;k<i;k++)
        {
            y*=str[j][k];
        }
        if(y==num&&str[j][i]=='\0')
        {
         strcpy(str1[cet++], str[j]);
        }
} 
    y=cet;
    for(j=0;j<y;j++)
    {
        if(strstr(str1[j],word)!=NULL)
        {cet--;
           str1[j][0]='~';
        }
    }

    printf("%d\n",cet);
    if(cet>=z)
    {for(j=0;j<y;j++)
    {
        for(k=j;k<y;k++)
        {
            for(n=0;n<i;n++)
            {
                if(str1[j][n]<str1[k][n])
                 break;
                if(str1[j][n]>str1[k][n])
            {
                strcpy(temp,str1[j]);
                strcpy(str1[j],str1[k]);
                strcpy(str1[k],temp);
               break;
            }
            }
        }
    }
    printf("%s\n",str1[z-1]);
    }
}

收藏点

相关文章:

  • wordpress无法创建目录./如何结合搜索检索与seo推广
  • 怎么通过ip查看自己做的网站/百度seo优化排名软件
  • 郑州富士康有多少人/做灰色词seo靠谱
  • 模板 网站 缺点/移动建站优化
  • 3d建模需要什么学历/爱站seo综合查询
  • 网站制作与网页建设/新网站秒收录技术
  • 智牛股_第7章_OAuth2+Spring Security OAuth2+GateWay+Druid+Spring Data JPA
  • Transformers18~ Diffusion
  • 华为OD机试真题 C++ 实现【最多等和不相交连续子序列】【2022.11 Q4 新题】
  • 【记录】Tiff图像的前处理,median blur filter 及 linear stretch
  • 一个select死锁问题
  • 试卷安全分发系统
  • 酒水销售网站
  • 【MQTT】mqtt + go + M5Stack + SSR 远程灯控程序
  • 3DEXPERIENCE平台2023新功能揭秘!Governance云端数据管理解决方案
  • Win11的两个实用技巧系列之玩游戏闪跳、错误代码0x80004005解决
  • 什么是字符编码,为什么要字符编码?
  • LinkedList api