1974. Minimum Time to Type Word Using Special Typewriter #
题目 #
- 有一个特殊打字机,它由一个 圆盘 和一个 指针 组成, 圆盘上标有小写英文字母
'a'
到'z'
。只有 当指针指向某个字母时,它才能被键入。指针 初始时 指向字符'a'
。 - 每一秒钟,你可以执行以下操作之一:
- 将指针 顺时针 或者 逆时针 移动一个字符。
- 键入指针 当前 指向的字符。
- 给你一个字符串
word
,请你返回键入word
所表示单词的 最少 秒数 。
思路 #
模拟 #
代码 #
模拟 #
class Solution {
public int distance(Character prev, Character cur) {
if (cur == prev) return 0;
if (cur > prev) {
return Math.min(cur-prev, 'z'-cur+1+prev-'a');
}
else return Math.min(prev-cur, cur-'a'+1+'z'-prev);
}
public int minTimeToType(String word) {
char prev = 'a';
int ans = 0;
for (int i = 0; i < word.length(); i++) {
ans += distance(prev, word.charAt(i)) + 1;
prev = word.charAt(i);
}
return ans;
}
}