一尘不染

如何使用Python逻辑检查回文

python

我正在尝试使用Python检查回文。我拥有的代码是非常for循环的。

在我看来,当人们从C转到Python时,最大的错误就是尝试使用Python实现C逻辑,这使事情运行缓慢,并且只是没有充分利用该语言。

我在这个网站上看到了。搜索“ C-style for”,即Python没有C-style for循环。可能已经过时,但是我将其解释为意味着Python具有自己的方法。

我尝试环顾四周,但找不到最新的(Python 3)建议。如何在不使用for循环的情况下用Python解决回文挑战?

我已经在C类中完成了此操作,但是我想在Python上基于个人进行操作。问题是来自Euler项目,很好的站点。

def isPalindrome(n):
    lst = [int(n) for n in str(n)]
    l=len(lst)
    if l==0 || l==1:
        return True
    elif len(lst)%2==0:
        for k in range (l)
        #####
    else:
        while (k<=((l-1)/2)):
            if (list[]):
                #####   

for i in range (999, 100, -1):
    for j in range (999,100, -1):
        if isPalindrome(i*j):
            print(i*j)
            break

我在这里错过了很多代码。这五个哈希只是对自己的提醒。

具体问题:

  1. 在C语言中,我将进行一个for循环,将索引0与索引max进行比较,然后将索引0 + 1与max-1进行比较,直到出现某种情况。如何在Python中做到最好?

  2. 我的for循环(范围为(999,100,-1),这是在Python中执行此方法的不好方法吗?

  3. 对于我所处位置的人,是否有人有任何好的建议,网站或资源?我不是程序员,我并不渴望成为一个程序员,我只是想学习足够多的知识,这样当我写我的学士学位论文(电气工程)时,在尝试尝试时不必同时学习适用的编程语言在项目中取得良好的结果。诸如此类的事情“如何从基本的C到Python的出色应用”。

  4. 我也需要学习良好的算法,才能对这个问题做出很好的解决。如果该值为零或一位数字,则它的长度为奇数,并且为偶数长度。我打算写循环…

PS:问题是:找到两个也是回文的3位整数的最高乘积。


阅读 424

收藏
2020-02-20

共1个答案

一尘不染

确定给定值是否是回文的Python方法:

str(n) == str(n)[::-1]

说明:

  • 我们正在检查的字符串表示形式是否n等于的反向字符串表示形式n
  • [::-1]片采用反相字符串的护理
  • 之后,我们使用 ==
2020-02-20