当前位置: 首页 > 面试题库 >

切换索引,使用显示的相同精确的9位数字创建下一个最高数字

雍飞雨
2023-03-14
问题内容

因此,我收到了一个挑战,陈述如下:“设计一个程序,输入一个9位数字,其中没有数字出现两次,并输出对应于下一个最高数字的相同9位数字作为输出。如果不存在这样的数字,
,算法应指出这一点。例如,如果输入为781623954,则输出为781624359。”

因此,我想到了翻转索引的想法,因此请检查一下最后一个索引是否正确,然后比较,然后在需要时翻转,但由于某些原因我的代码无法正常工作。我只检查最后两位数字而不是全部数字,因此,如果您可以帮助我并为我检查一下,并且您对解决此问题有更好的想法,请分享。

input = raw_input("Enter 9 Digits: ")
x = 9
while x>0:
    x-=1
    if input[8] > input[7]:
        temp = input[8]
        input[8] == input[7] 
        input[7] == temp
        print input
        break

问题答案:

我不确信您会使用翻转数字的方法来保证找到 下一个 最高的数字(至少在没有进一步检查的情况下)

这是一个简单的解决方案:只需增加输入数字并检查是否满足条件或找不到数字。

set() 可用于获取数字中唯一的一组数字。

input_num = '781623954'
next_num = int(input_num) + 1
input_digits = set(input_num)
found = False
while not found:
    next_num += 1
    next_digits = set(str(next_num))
    found = len(next_digits) == 9 and input_digits == next_digits
    if next_num > 987654321:
        break

if found:
    print(next_num)
else:
    print("No number was found.")


 类似资料:
  • 我得到了一个具有多个列和行的数据帧df1。简单的例子: 我想创建一个空的数据框df2,然后再添加新的列和计算结果。 此时,我的代码如下所示: …添加两个新列: 有没有更好/更安全/更快的方法?是否可以创建一个空数据帧df2,并且只从df1复制索引?

  • 我在研究一个问题,给我一个数字n,我必须找到下一个更大的元素,有相同的设置位数。当我在网上搜索时,我发现了一段有趣的代码,它在这里用了几行代码(有点神奇): 有人能用简单的步骤解释一下逻辑吗? 谢谢

  • 问题内容: 我有一个具有多个列和行的数据框 df1 。简单的例子: 我想创建一个空的数据框 df2, 然后再添加带有计算结果的新列。 目前,我的代码如下所示: …添加两个新列: 有没有更好/更安全/更快的方法呢?是否可以创建一个空的数据帧df2并仅从df1复制索引? 问题答案: 这将创建一个没有列但只有一个索引的DataFrame,并且它将与df1中的索引相同。

  • 问题内容: 如何不使用任何子字符串算法或任何第三方库而仅显示当年的最后两位数字? 我尝试了以下方法,它给出了四位数的年份。我想知道是否有任何日期格式选项可用于以两位数格式获取当前年份。 问题答案: 您可以根据需要使用来格式化日期。 编辑: 根据需要/要求,可以使用我建议的方法或 Robin 建议的方法。理想情况下,当使用Date处理大量操作时,最好使用一种方法。

  • 我的标题可能有点不恰当,但我真的不知道如何表述这个问题。 基本上,我有一个包含三列的数据库,其中包含文本字段。 我想从一列中提取所有值,并将它们分组为一个巨大的字符串,同时用\n分隔它们。 最后三个字符串应存储在单个字符串数组中。因此,我决定用三个列名查询数据库,并在整个表中循环: 我以前使用过类似的方法来连接所有三个字符串,但现在我需要在这三个值之间进行某种分隔。 检索完这些值后,我想将它们分别

  • 在这个 Json 数组中,我需要增加索引中的所有最小金额必须大于以前的索引最大金额,另一个条件是 maxamount 应该大于最小金额的相同索引 在上面的例子中,我已经根据更改最小金额更改了下一个索引值,我的例外输出是在更改单个最大金额的同时检查所有索引