如果单词是回文则打印 0,否则打印 -1(无条件和循环)
print 0 if the word is palindrome and -1 if it is not(without conditions and loops)
我需要检查字符串是否为回文(没有条件和循环),如果字符串是回文则打印“0”,如果不是回文则打印“-1”。
我不确定在 string[::-1]
反转字符串后要做什么。
如何在没有任何循环或条件的情况下比较两个字符串以检查回文?
(PS。我不应该使用任何循环或条件(包括 if、else))
只是比较不需要任何循环或条件:
string == string[::-1]
这将 return True
或 False
。
现在要了解如何将其设置为 0
或 -1
,这里有一些提示:
- 您可以将
bool
转换为 int
:True
→ 0,False
→ 1
- 负零为零
我确实想出了一个完整的解决方案,但由于这看起来像是家庭作业,我不想只给它给你。我希望这些提示能鼓励您自己解决问题。
对于它的价值,如果你被允许使用条件,我会推荐一个三元 if
语句:
-1 if string == string[::-1] else 0
希望这对您有所帮助:
print(str_a == str_a[::-1] and '0' or '-1')
既然你要求解释,我正在为你写一个答案。
但请注意,除了非常特殊的情况(例如高尔夫代码),我强烈不鼓励这种做法。
如果你不想使用 if
else
,你可以简单地 "trick it",使用 True
隐式转换为 1
和 False
到 0
在某些情况下。
您可以通过两种方式使用它:
解决方案 1
访问数组中的元素将 bool
转换为 int
,让我们在正确的索引处构造一个具有正确元素的数组:
[-1,0][string==string[::-1]]
如果 string==string[::-1]
的计算结果为 True
(这是回文),则将访问数组的第二个元素。否则,第一个。
解决方案 2
另一个解决方案是找到一个 "function" 将 1
转换为 0
,并将 0
转换为 -1
。最简单的是 f(x) = x - 1
这导致:
(string == string[::-1]) - 1
请记住,我的评论与其说是一个真正的解决方案,不如说是一个玩笑,您可能不应该在现实世界中使用它!
PS:"no conditions",我怀疑它的意思是 "without comparing letters one by one",但我确实认为
if string == string[::-1]:
print(0)
else:
print(-1)
完全可以接受。
我需要检查字符串是否为回文(没有条件和循环),如果字符串是回文则打印“0”,如果不是回文则打印“-1”。
我不确定在 string[::-1]
反转字符串后要做什么。
如何在没有任何循环或条件的情况下比较两个字符串以检查回文?
(PS。我不应该使用任何循环或条件(包括 if、else))
只是比较不需要任何循环或条件:
string == string[::-1]
这将 return True
或 False
。
现在要了解如何将其设置为 0
或 -1
,这里有一些提示:
- 您可以将
bool
转换为int
:True
→ 0,False
→ 1 - 负零为零
我确实想出了一个完整的解决方案,但由于这看起来像是家庭作业,我不想只给它给你。我希望这些提示能鼓励您自己解决问题。
对于它的价值,如果你被允许使用条件,我会推荐一个三元 if
语句:
-1 if string == string[::-1] else 0
希望这对您有所帮助:
print(str_a == str_a[::-1] and '0' or '-1')
既然你要求解释,我正在为你写一个答案。
但请注意,除了非常特殊的情况(例如高尔夫代码),我强烈不鼓励这种做法。
如果你不想使用 if
else
,你可以简单地 "trick it",使用 True
隐式转换为 1
和 False
到 0
在某些情况下。
您可以通过两种方式使用它:
解决方案 1
访问数组中的元素将 bool
转换为 int
,让我们在正确的索引处构造一个具有正确元素的数组:
[-1,0][string==string[::-1]]
如果 string==string[::-1]
的计算结果为 True
(这是回文),则将访问数组的第二个元素。否则,第一个。
解决方案 2
另一个解决方案是找到一个 "function" 将 1
转换为 0
,并将 0
转换为 -1
。最简单的是 f(x) = x - 1
这导致:
(string == string[::-1]) - 1
请记住,我的评论与其说是一个真正的解决方案,不如说是一个玩笑,您可能不应该在现实世界中使用它!
PS:"no conditions",我怀疑它的意思是 "without comparing letters one by one",但我确实认为
if string == string[::-1]:
print(0)
else:
print(-1)
完全可以接受。