1974. Minimum Time to Type Word Using Special Typewriter

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;
    }
}

致谢 #

int_64