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;
}
上一题
下一题