华为OD机试(C卷,100分)- 单词接龙

news/2024/9/19 10:58:24/ 标签: 华为od, c语言

(C卷,100分)- 单词接龙

题目描述

单词接龙的规则是:
可用于接龙的单词首字母必须要前一个单词的尾字母相同;
当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;已经参与接龙的单词不能重复使用。
现给定一组全部由小写字母组成单词数组,并指定其中的一个单词作为起始单词,进行单词接龙,
请输出最长的单词串,单词串是单词拼接而成,中间没有空格。

输入描述

输入的第一行为一个非负整数,表示起始单词在数组中的索引K,0 <= K < N ;
输入的第二行为一个非负整数,表示单词的个数N;
接下来的N行,分别表示单词数组中的单词。
备注:
单词个数N的取值范围为[1, 20];
单个单词的长度的取值范围为[1, 30];

输出描述

输出一个字符串,表示最终拼接的单词串。
用例

输入 0
6
word
dd
da
dc
dword
d
输出 worddwordda
说明 先确定起始单词word,再接以d开头的且长度最长的单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出worddwordda。

输入 4
6
word
dd
da
dc
dword
d
输出 dwordda
说明 先确定起始单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出dwordda。

题目解析

逻辑题,主要考察数组操作,如数组元素删除,数组自定义排序。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_WORD 20
#define MAX_WORD_LEN 30
typedef struct{char word[MAX_WORD_LEN];int used;
}WORD;
int cmp(const void *a,const void *b){WORD *wa=(WORD*)a;WORD *wb=(WORD*)b;if(strlen(wa->word)!=strlen(wb->word))return strlen(wb->word)-strlen(wa->word);//按长度从大到小排序return strcmp(wa->word,wb->word);
}
int main(){int k,n;scanf("%d",&k);//起始单词索引scanf("%d",&n);char res[MAX_WORD_LEN*MAX_WORD]={0};WORD words[MAX_WORD];for(int i=0;i<n;i++){scanf("%s",words[i].word);words[i].used=0;}strcpy(res,words[k].word);words[k].used=1;qsort(words,n,sizeof(WORD),cmp);for(int i=0;i<n-1;i++){int found=0;char lastW=res[strlen(res)-1];for(int j=0;j<n;j++){if(words[j].used==0&&lastW==words[j].word[0]){strcat(res,words[j].word);words[j].used=1;found=1;break;}}if(!found)break;}printf("%s",res);
}

http://www.ppmy.cn/news/1521076.html

相关文章

http ,https 区别

http相关知识点 HTTP和HTTPS的主要区别在于安全性方面&#xff0c;但它们之间还有其他一些不同点。以下是HTTP与HTTPS之间的关键区别&#xff1a; 安全性 HTTP&#xff1a;不安全&#xff0c;因为它以明文形式传输数据&#xff0c;这意味着数据在传输过程中可以被拦截、阅读…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——10.继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层…

【安当产品应用案例100集】015-企业内部CA管理体系的构建与实践

CA证书&#xff0c;想必大家都不陌生。在身份验证、加密通信、数据完整性、法律合规及企业内部信任等多个场景中&#xff0c;都扮演着至关重要的角色。它是保障在线交易、通信安全、身份验证和法律合规等方面不可或缺的技术工具。通过CA证书&#xff0c;企业和个人可以构建一个…

【Python】Pandas:数据分析

Pandas 是 Python 中功能强大的数据分析工具&#xff0c;用于处理和分析结构化数据。本文将通过分步骤的方式&#xff0c;详细介绍如何使用 Pandas 进行数据分组、重塑、透视表、时间序列处理、类别型数据管理以及数据可视化。这些知识点将帮助初学者快速上手并掌握 Pandas 的核…

什么是ip隧道技术?

你了解ip隧道技术吗&#xff1f;它就好比在开学第一天&#xff0c;你开车送孩子去上学&#xff0c;而平时的道路堵的水泄不通&#xff0c;为了更快的到达学校&#xff0c;你选择走一下高架单向路或是地下隧道。你的车是原始数据包&#xff0c;IP隧道就像高架路或是地下隧道&…

【时时三省】c语言例题----华为机试题<截取字符串>

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 1&#xff0c;题目 HJ46 截取字符串 描述 输入一个字符串和一个整数 k &#xff0c;截取字符串的前k个字符并输出 数据范围&#xff1a;字符串长度满足 1≤n≤1000 1≤n≤1000 &#xff0c…

Docker笔记-启动容器时,时间与宿主机保持一致

背景 启动容器时&#xff0c;有时容器内部时区或时间与宿主机不一样&#xff0c;有些开源的软件使用起来会有问题&#xff0c;所以需要进行同步 更新宿主机时间 宿主机使用ntp服务&#xff0c;更新时间 yum install ntp ntpdate cn.pool.ntp.org date 时间与北京时间一样后…

Matlab初等数学与线性代数

初等数学 算术运算 基本算术 加法 添加数字&#xff0c;追加字符串sum数组元素总和cumsum累积和movsum移动总和 A 1:5; B cumsum(A) B 151 3 6 10 15减法 -减法diff差分和近似导数 乘法 .*乘法*矩阵乘法prod数组元素的乘积cumprod累积乘积pagemtimes按…

Grafana仪表盘设计最佳实践:如何创建有效的监控面板

Grafana仪表盘设计最佳实践&#xff1a;如何创建有效的监控面板 引言 Grafana是一个开源的数据可视化和监控平台&#xff0c;它提供了丰富的仪表盘功能&#xff0c;用于展示和分析各种数据源&#xff08;如Prometheus、InfluxDB、Elasticsearch等&#xff09;。有效的仪表盘设…

UE4_后期处理_后期处理材质及后期处理体积二

效果&#xff1a; 步骤&#xff1a; 1、创建后期处理材质,并设置参数。 2、回到主界面&#xff0c;找到需要发光的物体的细节面板。 渲染自定义深度通道&#xff0c;默认自定义深度模具值为10&#xff08;需要修改此值&#xff0c;此值影响物体的亮度&#xff09;。 3、添加…

【知识】缓存类型和策略

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 缓存读取策略 缓存写入策略 直写缓存写入策略 回写高速缓存写入策略 回写缓存写入策略 ​​​​​​缓存替换策略 先进先出 &#xff08;F…

Python知识点:如何使用Jenkins与Python进行CI/CD集成

使用Jenkins与Python进行CI/CD集成的过程涉及到多个步骤&#xff0c;包括安装和配置Jenkins&#xff0c;创建Jenkins Pipeline&#xff0c;设置Python环境&#xff0c;以及自动化测试和部署过程。下面是一个详细的步骤指南&#xff1a; 1. 安装和配置Jenkins 1.1 安装Jenkins…

谈高压放大器的四象限输出

在交流电路中&#xff0c;容性负载和感性负载的电流与电压之间存在相位差&#xff1a; 1、对于容性负载&#xff0c;电流超前于电压90度 2、对于感性负载&#xff0c;电流滞后于电压90度 这种相位差会导致在特定条件下&#xff0c;电流可能会从负载端“倒灌”回电源或放大器…

imap发送邮件:如何配置IMAP服务器发邮件?

imap发送邮件的设置教程&#xff1f;如何使用IMAP服务发送邮件&#xff1f; IMAP发送邮件作为一种高效的邮件管理方式&#xff0c;允许用户在多个设备上同步邮件&#xff0c;极大地提升了工作效率。AokSend将详细介绍如何配置IMAP服务器以实现邮件的发送。 imap发送邮件&…

Rust 中 `madvise` 和 `posix_fadvise`的区别

在 Linux 操作系统中&#xff0c;madvise 和 posix_fadvise 是两个用于内存管理的系统调用&#xff0c;它们提供了一些类似的功能&#xff0c;但也有一些关键的区别。以下是它们的详细对比&#xff1a; madvise madvise 是一个系统调用&#xff0c;用于向内核提供关于应用程序…

计算机网络-VRRP工作原理

一、VRRP工作原理 前面我们大概了解了VRRP的一些基础概念&#xff0c;现在开始学习VRRP的技术原理。VRRP的选举及工作步骤&#xff1a; 确定网关地址 选举主备 主设备发送VRRP报文通知Backup设备 主设备响应终端ARP并维持在Master状态 终端正常发送报文到网关进行转发 因为我们…

使用GitLab CI/CD实现使用Makeself生成.run文件

在软件开发过程中&#xff0c;自动化构建和分发是提高效率和确保软件质量的关键环节。GitLab CI/CD提供了一个强大的平台&#xff0c;允许开发者在代码提交后自动执行一系列任务&#xff0c;如构建、测试、打包和部署。 一&#xff1a;准备GitLab仓库 首先&#xff0c;你需要…

NetSuite AI 图生代码

去年的ChatGPT热潮期间&#xff0c;我们写过一篇文章说GTP辅助编程的事。 NetSuite GPT的辅助编程实践_如何打开netsuite: html script notes的视图-CSDN博客文章浏览阅读2.2k次&#xff0c;点赞4次&#xff0c;收藏3次。作为GPT综合症的一种表现&#xff0c;我们今朝来探究下…

【知识图谱】3、Python操作图数据库neo4j示例

今天突然想起上次知识图谱系列埋了一个坑&#xff08;【知识图谱】1、Neo4j环境搭建入门指南:从零开始玩转图数据库&#xff09;&#xff0c;说后续写一篇关于Python操作neo4j的示例。趁着周六有充足时间&#xff0c;这里写个demo补上。 本文demo还是以面试的求职者、岗位要求…

基于爬山法MPPT和PI的直驱式永磁同步风力发电机控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PMSM 4.2 MPPT 4.3 PI 控制器原理 5.完整工程文件 1.课题概述 基于爬山法最大功率点跟踪 (Maximum Power Point Tracking, MPPT) 和比例积分控制器 (Proportional Integral, PI) 的直驱式永磁同步…