实现数组元素选与不选问题-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

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使