gpt4 book ai didi

python - 编码bat :Warmup- last2 showing compile error on the online compiler even though it works perfectly in the interactive shell

转载 作者:行者123 更新时间:2023-11-28 17:31:14 26 4
gpt4 key购买 nike

我是 Python 和堆栈溢出新手。

以下是 http://codingbat.com/prob/p145834 处的问题陈述

Given a string, return the count of the number of times that a substring length 2 appears in the string and also as the last 2 chars of the string, so "hixxxhi" yields 1 (we won't count the end substring).

Expected Outputs: last2('hixxhi') → 1 last2('xaxxaxaxx') → 1 last2('axxxaaxx') → 2

以下是我的代码:

def last2(str):
flag=0
count=0
ss=str[-2]+str[-1]
for i in range(0,len(str)-1,1):
flag=1
for j in range(0,2,1):
if ss[j]!=str[i+j]:
flag=0
break
if(flag==1):
count=count+1
return count-1

解释代码:该代码基于用于在字符串中搜索子字符串的标准算法。这里的 ss 代表子字符串,它取字符串 str 的最后两个字符。在字符串中搜索子字符串,count 存储重复的次数。返回值 count-1,因为我们不希望根据问题陈述将最后两个字符计为重复。

这在离线交互式 shell 上运行良好(使用 python 3.5)。

Screenshot enclosed

但是在线编译器/解释器对相同的代码显示以下错误消息:

Compile problems:

Error:string index out of range

(由于我是新手,声誉不到10所以没有附上截图)

错误的原因是什么?

最佳答案

当你尝试时会发生什么last2("") 在解释器中?

我想这就是你的问题所在。

但是,这个问题并没有说明如何处理长度 < 2 的字符串,因此期望您处理它有点可笑。

我提出了一个不错的快速解决方案,它确实有效,但我会让你找到自己的解决方案,除非你需要更多帮助。

关于python - 编码bat :Warmup- last2 showing compile error on the online compiler even though it works perfectly in the interactive shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com