如何修改Python代码以返回矩阵中单词对应字符的首次出现位置
按字符顺序查找矩阵中字符首次出现位置的代码修改方案
你当前代码输出所有匹配位置的核心原因是:找到匹配字符后没有中断遍历,会继续检索完矩阵中所有同字符位置,同时没有按要求拼接输出格式,只需做少量调整即可。
修改后完整代码
import math letters = "UIPLAIFPEULU" word = "FLU" n = math.ceil((math.sqrt(len(letters)))) matrix = [[char for char in letters[i * n: (i + 1) * n]] for i in range(n)] # 存储每个字符的首次匹配位置 result = [] for target_char in word: find_flag = False # 按行优先顺序遍历矩阵,找第一个匹配的字符 for row in range(len(matrix)): if find_flag: break for col in range(len(matrix[row])): if matrix[row][col] == target_char: result.append(f"[{row}, {col}]") find_flag = True break # 按要求格式拼接输出 print("->".join(result))
核心修改点
- 新增
result列表存储每个字符的首次匹配位置,避免每次找到匹配项就单独打印 - 新增
find_flag标记位,找到当前字符的第一个匹配位置后,直接跳出内层循环,不再检索剩余同字符位置,保证只取首次出现的结果 - 最后用
join方法将结果按->符号拼接,输出符合要求的格式
运行上述代码即可得到预期输出:[1, 2]->[0, 3]->[0, 0]
内容的提问来源于stack exchange,提问作者Anna Khishchenko
相关产品推荐
相关产品推荐

