CodeForces - 731A简单题

xiaoxiao2021-02-28  28

这里有一个密码锁,正上方是指针的位置,每次需要旋转这个锁,让某一个字母对准指针才能够进行下一步,怎么可以转动最小步数,让指针得到想要的字符串。比如 a -> c   最少需要拧动锁 2 次.;一开始指针指着 a,输出想要得到某一个字符串最少需要拧多少下?   Input 给定一个字符串,小写字母 Output 输出一个整数,代表最少拧动次数. Sample Input zeus Sample Output

18

自己弄的,很麻烦,但容易理解

#include<stdio.h>#include<string.h>using namespace std;int main(){ int i=0,j=0,s=0; char a[100]={0}; gets(a); for(i=0;i<strlen(a);i++) { if(i==0) { if(a[i]<='n') j=a[i]-'a'; else if(a[i]>'n') j='z'-a[i]+1; else j=0; } else{ if(a[i-1]>'n') {   if(a[i]>=a[i-1]-13&&a[i]<=a[i-1]) j=a[i-1]-a[i]; else if(a[i]>='a'&&a[i]<a[i-1]-13) j='z'-a[i-1]+a[i]-'a'+1; else  j=a[i]-a[i-1]; } if(a[i-1]<='n'&&a[i-1]>='a') { if(a[i]<=a[i-1]+13&&a[i-1]<a[i]) j=a[i]-a[i-1]; else if(a[i]<=a[i-1]&&a[i]>='a') j=a[i-1]-a[i]; else  j=a[i-1]-'a'+'z'-a[i]+1; } } s+=j; } printf("%d\n",s); return 0;}

转载请注明原文地址: https://www.6miu.com/read-2628388.html

最新回复(0)