1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 假设有一段英文 其中有单词中间的字母i误写为I 请编写程序进行矫正。

假设有一段英文 其中有单词中间的字母i误写为I 请编写程序进行矫正。

时间:2022-12-07 16:15:50

相关推荐

假设有一段英文 其中有单词中间的字母i误写为I 请编写程序进行矫正。

题目:假设有一段英文,其中有单词中间的字母i误写为I,请编写程序进行矫正。

我的思路:循环切片,利用下标关系进行替换

由于str不能直接进行操作,因此要设置一个list,但list又没有find()方法,所以input()也需要用变量记录

在判定单词中的'I'时我选择使用判断左右字符是否均为空格,但要注意-1和+1可能产生的越界访问问题

若字符串第一个字符为'I',我选择跳过,即start+1;若最后一个字符为'I',我选择在列表最后加一个空字符'\0'。

需要注意切片后find()到的位置是相对于切片而言的,要得到'I'在y中的位置即I_index需要加上切片开始位置即start

x = input()y = list(x)start = 0# 防止下标-1 +1的越界问题if y[0] != 'I' and y[len(y) - 1] != 'I':passelif y[0] != 'I' and y[len(y) - 1] == 'I':y.append('\0')elif y[0] == 'I' and y[len(y) - 1] != 'I':start += 1else:y.append('')start += 1while x[start:].find('I') != -1:I_index = x[start:].find('I') + startif y[I_index + 1] != ' ' or y[I_index - 1] != ' ':y[I_index] = 'i'start = I_index + 1print(''.join(y))

欢迎指出错误或改进方案~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。