题目描述:
24小时计时制是一个广为使用的计时体系。在一个古老的村庄使用二进制下的24小时制,这时“11:11”表示的就是3点03分。
给一个未知的时刻,形如"A:B"的形式来表示,A,B分别是一个字符串,字符串可以由0-9和A-Z组成,分别代表0-9和10-35.求出这个时刻所处的所有可能的进制。
输入:
一行字符串,即“A:B”的形式,A,B的含义及组成如题面
输出:
输出可以包含若干个整数,如果不存在任何一个进制符合要求,则输出“-1”,如果有无穷多的进制数符合条件,则输出“0”,否则按从小到大的顺序输出所有进制数,中间用空格隔开
实现思路:
1.先将A和B进行拆分,分别将每一位转化成10进制数字;
2.找出A和B中出现的最大数值max,那么第一个可能的进制数为max+1;
3.从max+1开始循环遍历,判断A和B两个部分组成的数是否满足0<=A<24 且0<=B<60,直到超出范围即停止,将符合条件的进制数存入一个list里面;
4.判断list的长度,如果为0,则输出-1,否则依次输出list的内容。
python代码如下:
import sys
import numpy as np
def transfer(k):
n = ord(k)
if n>=48 and n<=57: