【华为机试】2023年真题B卷(python)-考古问题

news2024/11/17 1:39:58

一、题目

题目描述:

考古问题,假设以前的石碑被打碎成了很多块,每块上面都有一个或若干个字符,请你写个程序来把之前石碑上文字可能的组合全部写出来,按升序进行排列。

二、输入输出

三、示例

示例1:
输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
3
a b c
输出
abc
acb
bac
bca
cab
cba
示例2:

输入输出示例仅供调试,后台判题数据一般不包含示例
输入
3
a b a
输出
aab
aba
baa

四、要求

时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld

五、解题思路

排列组合问题,简单的 DFS 

六、参考代码 

# -*- coding: utf-8 -*-
'''
@File    :   2023-B-考古问题.py
@Time    :   2023/12/30 22:51:00
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''

# import os
# import re
# import sys
# import copy
# import math
# import queue
# import functools
# from queue import Queue
# from collections import Counter, defaultdict

def permutations(prefix, remaining, result):
    """
    生成所有可能的排列组合

    Args:
        prefix (str): 当前生成的排列组合的前缀
        remaining (list): 剩余的字符列表
        result (list): 存储生成的排列组合的结果列表
    """
    for i in range(len(remaining)):
        str_i = prefix + remaining[i]
        remaining_i = remaining[:i] + remaining[i+1:]
        if not remaining_i:
            if str_i not in result:
                result.append(str_i)
        else:
            permutations(str_i, remaining_i, result)


result = []
num = int(input())  # 输入字符块数量
list_n = input().split(' ')  # 输入字符块列表
permutations('', list_n, result)  # 生成排列组合
result.sort()  # 对结果进行排序
for s in result:
    print(s)  # 输出结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1352642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应急响应事件报告模板

文章目录 一. 项目概述1.1 事件概述1.2 应急响应工作目标1.3 应急响应工作结果1.4 相关人员 二. 应急响应工作流程2.1 检测阶段工作说明2.2 抑制阶段工作说明2.3 根除阶段工作说明2.4 恢复阶段工作说明 三. 总结及安全建议3.1 应急响应总结3.2 相关安全建议 一. 项目概述 1.1 …

厦门大学OpenHarmony技术俱乐部开创“1+N”新模式,加速推动产学研融合

12月29日,OpenHarmony技术俱乐部再添重将——在多方见证下,厦门大学OpenHarmony技术俱乐部在翔安校区益海嘉里楼报告厅正式揭牌成立,现场出席领导及师生代表近千人。 成立仪式现场 OpenHarmony技术俱乐部 携手厦门大学共绘开源生态新图景 OpenHarmony是由开放原子开源基金…

网络安全法解读之思维导图

一、出台背景 二、法律基础 三、网络安全法架构 1、第一章 总则(1-14条) 2、第二章 网络安全支持与促进(15-20条) 3、 第三章 网络运行安全(21-39条) (1)第一节 一般规定 &#xf…

ArkTS-拖动手势,下拉刷新

PanGesture(拖动手势) 用于触发拖动手势事件,滑动的最小距离为5vp时拖动手势识别成功。 PanGesture官方解释 示例 import promptAction from ohos.promptActionEntry Component struct Index {StatetranslateY: number 0Statetext: string …

tp8/6 插件PhpOffice\PhpSpreadsheet导入表格

一、安装 composer require phpoffice/phpspreadsheet 官网&#xff1a;phpoffice/phpspreadsheet - Packagist 二、代码 <?php namespace app\services\upload\model; use app\services\BaseServices; use \PhpOffice\PhpSpreadsheet\Spreadsheet; use \PhpOffice\Php…

Axure鲜花速递商城网站原型图,花店网站O2O本地生活电商平台

作品概况 页面数量&#xff1a;共 30 页 兼容软件&#xff1a;仅支持Axure RP 9/10&#xff0c;非程序软件无源代码 应用领域&#xff1a;鲜花网、花店网站、本地生活电商 作品特色 本作品为「鲜花购物商城」网站模板&#xff0c;高保真高交互&#xff0c;属于O2O本地生活电…

python 深度学习 记录遇到的报错问题10

本篇继python 深度学习 解决遇到的报错问题9_module d2l.torch has no attribute train_ch3-CSDN博客 一、CUDA error: no kernel image is available for execution on the device CUDA kernel errors might be asynchronously reported at some other API call,so the stackt…

跟cherno手搓游戏引擎【1】:配置与入口点

环境配置&#xff1a; 编译环境&#xff1a;VS2019 创建两个项目&#xff1a; 设置Sandbox为启动项&#xff1a; 设置sandbox的配置属性-常规-输出目录\中间目录为如下&#xff1a; 预处理定义&#xff1a;为了配置一些只有windows才能用的函数。 设置YOTOEngin&#xff08;我…

LeetCode 每日一题 Day 28293031 ||三则模拟||找循环节(hard)

1185. 一周中的第几天 给你一个日期&#xff0c;请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数&#xff1a;day、month 和 year&#xff0c;分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday…

Cam4DOcc: 基于摄像头的4D占据网格预测的自动驾驶应用

文章&#xff1a;Cam4DOcc: Benchmark for Camera-Only 4D Occupancy Forecasting in Autonomous Driving Applications 作者&#xff1a;Junyi Ma, Xieyuanli Chen , Jiawei Huang, Jingyi Xu, Zhen Luo, Jintao Xu, Weihao Gu, Rui Ai, Hesheng Wang 编辑&#xff1a;点云P…

Python高效编程:十招实用技巧大揭秘!

文章目录 1\. 代码优化与高效数据结构2\. 列表推导式和生成器表达式3\. 使用装饰器和上下文管理器4\. 多线程和多进程5\. 函数式编程和Lambda函数6\. 内置模块与标准库7\. 文件处理与I/O操作8\. 调试和性能优化工具9\. 文档化与测试10\. 并发编程与异步技术总结Python技术资源分…

UE4.27.2 网页串流

1、和Unity串流一样安装Node.js 下载地址https://nodejs.org/ 2、下载安装Epic Games启动程序https://www.unrealengine.com/zh-CN/download 3、安装UE4.7.2 4、这里就不安装像素流送演示&#xff0c;选个别的然后创建工程 5、启用PixelStreaming插件 6、设置额外启动参数&am…

开发手机中控软件:从零开始的代码之旅!

在这个智能化风靡的时代&#xff0c;手机中控软件成为了许多人的梦想&#xff0c;通过一款软件&#xff0c;我们可以轻松地控制家中的各种智能设备&#xff0c;实现智能家居的美好愿景。 但是&#xff0c;开发手机中控软件并非易事&#xff0c;需要具备一定的编程知识和技能&a…

论文阅读:通过时空生成卷积网络合成动态模式(重点论文)

原文链接 github code 介绍视频 视频序列包含丰富的动态模式&#xff0c;例如在时域中表现出平稳性的动态纹理模式&#xff0c;以及在空间或时域中表现出非平稳的动作模式。 我们证明了时空生成卷积网络可用于建模和合成动态模式。 该模型定义了视频序列上的概率分布&#xff0…

paddle v4 hubserving 部署

环境准备&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.7/deploy/hubserving#24-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1 服务器启动命令 hub serving start -c deploy/hubserving/ocr_system/config.json客户端请求 python tools/test_hubserving.…

境内深度合成服务算法备案清单(2023年12月)

截止2024年1月3日&#xff0c;第三批深度合成服务算法备案信息的公告尚未发布&#xff0c;预计将会在2024-1-10左右发布&#xff0c;我公司已知晓部分公示名单&#xff0c;如中国电信数字人生成算法&#xff0c;详情联系WX号&#xff1a;SuanfabeiandayuAI生成合成类算法应办理…

非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (实例篇 V)

Title: 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (实例篇 V) 姊妹博文 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (I) 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (II) 非线性最小二乘问题的数值方法 —— 从牛顿…

RPA如何入门?

许多人可能认为RPA等人工智能软件的入门非常困难&#xff0c;不知道该如何开始。作为一名刚接触RPA软件一年多的新手&#xff0c;回答这个问题也是对自己学习RPA历程的回顾。同时&#xff0c;这也是分享给那些打算学习RPA初学者的经验&#xff0c;希望可以帮助大家更好地、更迅…

SANSAN新鲜事|物联网平台就只能做数据监控吗?

​物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;是指通过网络将各种物理设备、智能终端、传感器等连接起来&#xff0c;实现信息的交换和通信的技术。物联网平台&#xff08;IoT Platform&#xff09;是指为物联网应用提供基础设施、服务和工具的软件平…

【springboot配置文件加载源码分析】

在Spring Boot的源码中&#xff0c;配置文件的加载是在应用程序启动的早期阶段进行的。具体来说&#xff0c;配置文件加载的主要步骤发生在SpringApplication类的run()方法中的prepareEnvironment方法中&#xff0c;真正读取我们的配置文件还是PropertySourceLoader。 本篇博客…