news 2026/6/15 17:04:05

华为OD机考双机位C卷 - 字符串拼接(Java Python JS C/C++ GO )

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为OD机考双机位C卷 - 字符串拼接(Java Python JS C/C++ GO )

最新华为上机考试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
华为OD机考双机位C卷 - 字符串拼接

题目描述

给定 M(0 < M ≤ 30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为 N(0 < N ≤ 5)的字符串,

要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,

输入非法或者无法拼接出满足条件的字符串则返回0。

输入描述

给定的字符列表和结果字符串长度,中间使用空格(" ")拼接

输出描述

满足条件的字符串个数

用例1

输入

aab 2

输出

2

说明

只能构成ab,ba。

用例2

输入

abc 2

输出

6

说明

可以构成:ab ac ba bc ca cb 。

解题思路

使用递归和回溯的思想来生成不同的字符串。具体的逻辑如下:

  1. 首先,我们定义一个函数generateDistinctStrings,这个函数接收以下参数:可用字符集s,目标字符串长度length,当前已生成的字符串current,已生成的结果集result,以及一个标记数组used,用来记录每个字符是否已被使用。

  2. generateDistinctStrings函数中,首先检查当前已生成的字符串current的长度是否等于目标长度length。如果等于,说明我们已经生成了一个满足长度要求的字符串,将其添加到结果集result中,然后返回。

  3. 如果当前字符串current的长度还未达到目标长度length,我们就需要继续添加字符。此时,我们遍历可用字符集s中的每一个字符。对于每一个字符,我们首先检查它是否已经被使用(通过查看used数组),以及它是否与current的最后一个字符相同。如果字符已经被使用,或者与current的最后一个字符相同,我们就跳过这个字符,继续检查下一个字符。

  4. 如果一个字符未被使用,且与current的最后一个字符不同,我们就将它添加到current的末尾,然后标记这个字符为已使用,接着递归调用generateDistin

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 16:02:42

通过域名投资获益的三种常见策略及其优劣

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

作者头像 李华
网站建设 2026/6/15 14:42:53

SSM医院住院部管理系统g8582(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表 系统项目功能&#xff1a;医生,护士,科室,病房信息,病床信息,仪器信息,门诊病历,住院安排,药品信息,治疗信息,出院申请 SSM医院住院部管理系统开题报告 一、题目 SSM医院住院部管理系统的设计与实现 二、选题背景与意义 2.1 选题背景 住院部是医院诊疗服…

作者头像 李华
网站建设 2026/6/1 7:43:00

做电商商品卖点提炼工具,输入商品详情,自动提取核心卖点(功能/材质/性价比),生成适配电商详情页的卖点文案,分点展示更清晰。

1. 实际应用场景描述 场景&#xff1a; 小刘是一名电商运营&#xff0c;负责多个店铺的商品上架。每天需要从供应商提供的长篇商品详情中提炼出核心卖点&#xff0c;并写成适合详情页的分点文案。 例如&#xff0c;一款保温杯的详情可能包含材质、容量、保温时长、外观设计、适…

作者头像 李华
网站建设 2026/6/15 14:46:15

HELLY HANSEN携手香港游艇会扬帆启航 承百年航海精神,启东方航道新程

2026年1月25日&#xff0c;挪威高端户外品牌HELLY HANSEN与香港游艇会于香港维港之畔携手启航&#xff0c;共启新年航海新章。秉承跨越世纪的百年航海基因&#xff0c;HELLY HANSEN择址香港这一国际航海枢纽&#xff0c;以一场扬帆之旅生动诠释开拓不止的探索精神。活动现场&am…

作者头像 李华
网站建设 2026/6/15 14:44:24

运维系列【亲测有效】:Linux 系统根分区满了怎么办(根分区不是lvm不可以直接扩充的前提下)

Linux 系统根分区满了怎么办(根分区不是lvm不可以直接扩充的前提下) Linux 系统根分区满了怎么办(根分区不是lvm不可以直接扩充的前提下 问题分析 根本原因 解决方案: 方案一:迁移 Docker 数据到 /data 步骤1:停止 Docker 服务 步骤2:备份现有 Docker 数据 步骤3:创建新…

作者头像 李华
网站建设 2026/5/15 18:38:44

opc da 服务器数据 转 SNMP项目案例

目录 1 案例说明 2 VFBOX网关工作原理 3 应用条件 4 查看OPC DA服务器的相关参数 5 配置网关采集opc da数据 6 使用SNMP转发 7 在服务器上运行仰科OPC DA采集软件 8 案例总结 1 案例说明 在OPC DA服务器上运行OPC DA client软件查看OPC DA服务器的相关参数。配置VFBOX…

作者头像 李华