测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A22791. 移动距离

填空题 中等

题目描述

移动距离

题目描述

森林里住着 26 只小动物,它们分别对应字母 A 到 Z。这些小动物的家沿着一条直线排列,相邻两家之间的距离为 1。它们的排列顺序记作一个字符串S。

现在,你要按顺序去拜访 A,B,C,…,Z。每次拜访时,你需要从当前动物的家移动到目标小动物的家。起初,你直接在动物A所处的位置。请计算到拜访完Z为止,需要移动的距离之和。

输入格式

共一行,输入一串字符串 S。

输出格式

共一行,输出一个整数,表示从A出发到拜访完Z的最小总移动距离。

输入样例#1

ABCDEFGHIJKLMNOPQRSTUVWXYZ

输出样例#1

25

输入样例#2

VENFLQURTCWOAXMGJYIZDKSBHP

输出样例#2

231

参考答案

#include <iostream> int main() { int pos[30]; char c; int dis=0; for(int i = 0 ; i < 26; ++i){ std::cin >> c; pos[c -'A'] = i; } for(int i = 1 ; i < 26; ++i){ dis += abs(pos[i]-pos[i-1]); } std::cout << dis; return 0; }
上一题 下一题