You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python判断能否用word2字符构造word1代码运行异常如何解决

代码逻辑问题
  • 循环条件错误:当前仅当word2和word1末尾字符相等时才会进入循环,若初始字符不相等,循环直接跳过,直接执行最后一行的「可以构造」输出,这是测试结果不符合预期的核心原因。
  • 缩进逻辑错误:b -= 1(word1指针前移的代码)不在循环体内,匹配过程中word1的指针永远不会移动,完全不符合你设计的「字符不等则前移word1指针」的思路。
  • 判断逻辑倒置:你把「不能构造」的输出写在了循环内部的else分支,只要计数没归零就输出不能构造,和实际需求完全相反;且没有在循环结束后才根据计数最终判断是否构造成功。
  • 缺少边界校验:指针前移到0之后继续访问[a-1]/[b-1]会触发索引越界错误,你当前没报错只是因为循环大多时候没有执行。
修复后代码
word1 = input()
word2 = input()
# 指针分别指向两个单词的末尾索引
p1 = len(word1) - 1
p2 = len(word2) - 1
match_count = 0

while p1 >= 0 and p2 >= 0:
    if word1[p1] == word2[p2]:
        match_count += 1
        p2 -= 1
    p1 -= 1

# 匹配到的字符数等于word1长度就可以构造
if match_count == len(word1):
    print('it can be made')
else:
    print('it cant be made')

内容的提问来源于stack exchange,提问作者nicksuc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:36:04