|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述
有一种特殊的英文单词,它的相邻字母对之间的“距离”不断增加。如单词subway,它的相邻字母对分别为 (s, u), (u, b), (b, w), (w, a), (a, y), 字母之间的距离依次为2,19,21,22,24(如a是第1个字母,y是第25个字母,a和y的距离为24)。编写函数is_special_word(word),word为输入单词字符串,如为特殊单词,返回True;否则返回False。
输入
单词
输出
如为特殊单词,返回True;否则返回False。
输入样例1
subway
输出样例1
True
本帖最后由 isdkz 于 2023-4-25 13:14 编辑
编写如下函数 `is_special_word(word)`,该函数接收一个字符串 `word` 作为输入,并检查它是否满足特殊单词的条件。如果满足条件,则返回 True,否则返回 False。
- def is_special_word(word):
- if not word:
- return False
- word = word.lower()
- prev_distance = abs(ord(word[1]) - ord(word[0]))
- for i in range(1, len(word) - 1):
- curr_distance = abs(ord(word[i + 1]) - ord(word[i]))
- if curr_distance <= prev_distance:
- return False
- prev_distance = curr_distance
- return True
- # 测试样例
- print(is_special_word("subway")) # 输出: True
复制代码
此函数首先将输入的单词转换为小写,然后计算第一对相邻字母之间的距离。接下来,遍历单词的其余部分,并计算相邻字母之间的距离。如果当前距离小于或等于前一个距离,则返回 False,因为该单词不满足特殊单词的条件。如果遍历完整个单词且没有返回 False,则返回 True。
|
|