实现数组元素选与不选问题-python实现

2023-10-20 00:38

本文主要是介绍实现数组元素选与不选问题-python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:

对于固定数组{0,1,2,3,4,5,6,7,8,9}

输入bool数组{0,1,1,1,1,1,1,1,0,0},其中0对应的下标数组元素可出现也可以不出现,1必须出现

出现 所有的可能的组合(组合问题标准的解法是回溯),转化为字符串,并按照字符串升序排序!

#include <stdio.h>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

vector<string> res;
void dfs(int* m, int* n, int index,string ss)
{
    while (index<10&&n[index] == 1)
    {
        ss += string(1, char(m[index] + '0'));
        index++;
    }
    if (index == 10)
    {
        res.push_back(ss);
        return;
    }
    dfs(m, n, index + 1, ss);
    ss += string(1, char(m[index] + '0'));
    dfs(m, n, index + 1, ss);
}

int main()
{
    int m[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    int n[10];
    for (int i = 0; i < 10; ++i)
        cin >> n[i];
    dfs(m, n, 0, string());
    sort(res.begin(), res.end());
    for (int i = 0; i < (int)res.size(); ++i)
        cout << res[i] << endl;
    return 0;
}
 

搞了半天写了个python实现,用的不熟练

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
#a_str = list('0123456789')
a_str = '0123456789'
print type(a_str)
print a_str
res =[]
bool_list = sys.stdin.readline().split()[0]
def dfs(a_str,bool_list,index,tmp):
    
    while index<10 and int(bool_list[index])==1:
        tmp += a_str[index]
        index +=1
    if index ==10:
        res.append(tmp)
        return
    dfs(a_str,bool_list,index+1,tmp)
    tmp +=  a_str[index]
    dfs(a_str,bool_list,index+1,tmp)
dfs(a_str,bool_list,0,'')

print 'len:' + str(len(res))
print res

#将字符串转换成数字列表
bool_list =list(bool_list)
print bool_list
bool_list = [int(x) for x in bool_list]
print bool_list
'''上题也可以先将字符串列表转换成int数组,之后就不用再while里强制转换了

 

 

 

 

这篇关于实现数组元素选与不选问题-python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243455

相关文章

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Pydantic中model_validator的实现

《Pydantic中model_validator的实现》本文主要介绍了Pydantic中model_validator的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录引言基础知识创建 Pydantic 模型使用 model_validator 装饰器高级用法mo

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建