Problem
You are given a string s
. The score of a string is defined as the sum of the absolute difference between the ASCII values of adjacent characters.
Return the score of s
.
Examples
Example 1:
Input: s = "hello"
Output: 13
Explanation:
The ASCII values of the characters in s are: 'h' = 104, 'e' = 101, 'l' = 108, 'o' = 111. So, the score of s would be |104 - 101| + |101 - 108| + |108 - 108| + |108 - 111| = 3 + 7 + 0 + 3 = 13.
Example 2:
Input: s = "zaz"
Explanation:
The ASCII values of the characters in s are: 'z' = 122, 'a' = 97. So, the score of s would be |122 - 97| + |97 - 122| = 25 + 25 = 50.
Solution
Method 1 - Iterate on string
We can just iterate on string, calculate the difference as problem says.
Here is the video explanation:
Code
Java
class Solution {
public int scoreOfString(String s) {
int score = 0;
for (int i = 1; i < s.length(); i++) {
score += Math.abs(s.charAt(i) - s.charAt(i - 1));
}
return score;
}
}
Complexity
- ⏰ Time complexity:
O(n)
- 🧺 Space complexity:
O(1)