news 2026/5/1 3:38:35

华为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/4/28 12:49:13

Neo4j 在大数据领域的安全防护机制解读

Neo4j 在大数据领域的安全防护机制解读 关键词&#xff1a;Neo4j、图数据库、大数据安全、访问控制、加密技术 摘要&#xff1a;在大数据时代&#xff0c;图数据库因能高效处理复杂关系数据而被广泛应用&#xff08;如社交网络、金融风控&#xff09;&#xff0c;但数据泄露风险…

作者头像 李华
网站建设 2026/5/1 3:38:06

计算机毕业设计springboot中小学生家教系统 基于Spring Boot框架的中小学生在线辅导平台开发 Spring Boot驱动的中小学生家教服务管理系统设计与实现

计算机毕业设计springboot中小学生家教系统el3ca9&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着信息技术的飞速发展&#xff0c;教育领域也在不断探索新的模式和工具来满足…

作者头像 李华
网站建设 2026/4/22 23:00:18

JSON文本格式化

JSON格式化是指将压缩或结构混乱的JSON数据转换为具有清晰缩进和层级结构的可读格式&#xff0c;便于人类阅读、调试和编辑。以下是几种常用的JSON格式化方法&#xff1a; 1、在线工具对于快速、无需安装的格式化需求&#xff0c;可以使用在线工具&#xff1a;‌JSON.cn‌&…

作者头像 李华
网站建设 2026/4/28 0:44:06

收藏!5年Java开发被优化后,我发现大模型才是程序员破局捷径

做了5年Java后端开发&#xff0c;上周突然被优化离职。抱着一丝希望投出30多份传统后端岗位&#xff0c;结果要么是已读不回、简历石沉大海&#xff0c;要么就是HR开出的薪资直接腰斩&#xff0c;连之前的一半都不到…… 下午刚点开程序员求职交流群&#xff0c;这条消息就被密…

作者头像 李华
网站建设 2026/4/25 15:19:02

社会网络仿真软件:Gephi_(6).可视化设置与技巧

可视化设置与技巧 在社会网络仿真软件中&#xff0c;可视化是理解网络结构和动态的重要工具。Gephi 提供了丰富的可视化设置和技巧&#xff0c;帮助用户更好地展示和分析网络数据。本节将详细介绍如何在 Gephi 中进行各种可视化设置&#xff0c;包括节点和边的样式调整、布局算…

作者头像 李华
网站建设 2026/4/23 14:05:06

别搞混了!Agent Skill 和 MCP 到底有什么区别?

用 AI Agent 工具&#xff08;Claude Code、Cursor、Windsurf 等&#xff09;的时候&#xff0c;经常会遇到两个概念&#xff1a; MCP&#xff08;Model Context Protocol&#xff09;Skill&#xff08;Agent Skill&#xff09; 它们看起来都是"扩展 AI 能力"的方式&…

作者头像 李华