专栏首页算法与编程之美Python|列表和循环遍历思考题

Python|列表和循环遍历思考题

问题描述

(1)给定一个数组,你需要删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度和新的数组。

输入样例:[1,1,1,2,3,4,4,4]

输出样式:4 [1,2,3,4]

(2)马虎的算式

小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

有一次,老师出的题目是:36 x 495 = ?

他却给抄成了:396 x 45 = ?

但结果却很戏剧性,他的答案竟然是对的!!

假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)

能满足形如:ab * cde = adb * ce 这样的算式一共有多少种呢?

请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。

满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。

因为 36 * 495 = 396 * 45 = 17820

类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54

解决方案

(1)首先这是一个数组并且需要返回列表所以要将字符串转化为数,其次需要删除重复的数,最后要输出长度。

(2)首先abcde是1~9不同的数字,且满足ab*cde=adb*ce,一共有多少种情况。

(3)用list()转化为列表,set()转化为不重复的集合,eval()把字符转化为数,len()计算该列表的长度。下表是最简单的做法。

L=list(set(eval(input())))        

print(len(L),L)

表 1

(4)首先要用for循环来循环abcde的值,然后再用if语句来判定条件,再将符合条件的abcde加起来就是最后符合条件的数的个数了。

 x=0         

for a in range(1,10):     

  for b in range(1,10):         

    for c in range(1,10):             

      for d in range(1,10):                 

        for e in range(1,10):                     

          if a!=b and a!=c and a!=d and a!=e and b!=c and b!=d and b!=e and c!=d and c!=e and d!=e and(a*10+b)*(c*100+d*10+e)==(a*100+d*10+b)*(c*10+e):                         

            x+=1  #x=x+1 

print(x)

表 2

结语

需要熟悉一些列表的基本性质如:插入,删去,索引。要通过这些代码来完成。set()转化为不重复的集合,eval()把字符转化为数,len()计算该列表的长度。是第一题的解题关键。要熟悉for循环和if语句,需要注意这些语句的最后都需要“:”来结束。在使用for语句的时候一定要注意范围,if语句的时候要注意条件是否输入正确是否有遗漏。

END

实习编辑 | 王文星

责 编 | 江汪霖

where2go 团队

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:江汪霖

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网页|css中的匹配问题

    众所周知在写css的时候,会根据html中类的定义或者id的定义来写相应的css代码。给不同的类定义不同的样式,当然为了能够少写一些代码,大家就会在css中引用...

    算法与编程之美
  • Python基础 | 一个被忽视的神器tqdm

    日常工作和学习中,经常需要观察当前任务的执行进度,如果一个执行时间很长的任务,能够有进度条实时的显示当前的任务进度,那么将非常方便。如何快速的实现?

    算法与编程之美
  • Python|蓝桥杯—矩阵翻硬币

    小明先把硬币摆成了一个 n 行 m 列的矩阵。随后,小明对每一个硬币分别进行一次 Q 操作。

    算法与编程之美
  • NeurIPS图表示学习研讨会录取论文揭晓:92篇论文看懂图表示学习

    10 月 18 日,2019 中关村论坛平行论坛 ——AI WORLD 2019 世界人工智能峰会在北京启幕。新智元杨静、科大讯飞胡郁、微软王永东、华为王成录、...

    新智元
  • 专题报告:海洋生物声学的探测与分类与深度学习(CS SD)

    019年11月21-22日,约30名研究人员齐聚加拿大BC省维多利亚州,参加由子午线组织、加拿大海洋网主办的“海洋生物声学深度学习检测与分类”研讨会。出席了研讨...

    用户6853689
  • 注意:C++中double的表示是有误差的

    注意:C++中double的表示是有误差的,直接通过下面的例子看一下 1 #include<iostream> 2 using namespace std;...

    用户1215536
  • python 学习总结4

      (1)python中的整数与数学中的概念是一致的,可以正也可以负,没有取值范围。

    py3study
  • Python解答智力题

    求解:一筐鸡蛋: 1个1个拿,正好拿完 2个2个拿,还剩1个 3个3个拿,正好拿完 4个4个拿,还剩1个 5个5个拿,还差1个 6个6个拿,还剩3个 7个7个拿...

    py3study
  • 搜索和推荐的公平性方面 (CS IR)

    最近的几项研究强调了搜索和推荐系统是如何在不同层面表现出偏见。抵制这种偏见,并在搜索中带来一定的公平性,不仅能创造一个考虑相关性和多样性的更加平衡的环境,而且对...

    Antonia
  • How to get user parameter settings

    也可以在debugger里选择menu Goto->System Areas->SAP Memory:

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券