题库首页 › 青少年软件编程(C语言) › 题目 16801

移动距离 森林里住着 26 只小动物,它们分别对应字母 A 到 Z。这些小动物的家沿着一条直线排列,相邻两家之间的距离为 1。它们的排列顺序记作一个字符串 S。 现在,你要按顺序去拜访 A、B、C、……、Z。每次拜访时,你需要从当前动物的家移动到目标小动物的家。起初,你直接在动物 A 所处的位置。请计算到拜访完Z为止,需要移动的距离之和。 时间限制:1000ms,内存限制:256MB 输入格式 共一行,输入一串字符串 S。 输出格式 共一行,输出一个整数,表示从 A 出发到拜访完 Z 的最小总移动距离。 输入样例#1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 输出样例#1 25 输入样例#2 VENFLQURTCWOAXMGJYIZDKSBHP 输出样例#2 231 数据范围: S长度为 26。

正确答案:参考程序(Python):S=input();pos={S[i]:i for i in range(26)};cur=pos['A'];d=0;for ch in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':d+=abs(pos[ch]-cur);cur=pos[ch];print(d)。样例→25、231。核心:字母序移动距离。

试卷来源:202509 青少年等级考试C/C++真题三级

本卷相关题目

在线做题 同科目题库