LeetCode-in-Java

1974. Minimum Time to Type Word Using Special Typewriter

Easy

There is a special typewriter with lowercase English letters 'a' to 'z' arranged in a circle with a pointer. A character can only be typed if the pointer is pointing to that character. The pointer is initially pointing to the character 'a'.

Each second, you may perform one of the following operations:

Given a string word, return the minimum number of seconds to type out the characters in word.

Example 1:

Input: word = “abc”

Output: 5

Explanation:

The characters are printed as follows:

Example 2:

Input: word = “bza”

Output: 7

Explanation:

The characters are printed as follows:

Example 3:

Input: word = “zjpc”

Output: 34

Explanation:

The characters are printed as follows:

Constraints:

Solution

public class Solution {
    public int minTimeToType(String word) {
        int min = 0;
        char curr = 'a';
        for (int i = 0; i < word.length(); i++) {
            int diff = curr - word.charAt(i);
            curr = word.charAt(i);
            min += Math.min(diff + 26, Math.min(Math.abs(diff), 26 - diff));
            min++;
        }
        return min;
    }
}