class Solution {
public int totalWaviness(int num1, int num2) {
int ans = 0;
for (int num = num1; num <= num2; num++) {
ans += getWaviness(num);
}
return ans;
}
private int getWaviness(int num) {
char[] digits = String.valueOf(num).toCharArray();
if (digits.length < 3) {
return 0;
}
int waviness = 0;
for (int i = 1; i < digits.length - 1; i++) {
if ((digits[i] > digits[i - 1] && digits[i] > digits[i + 1]) ||
(digits[i] < digits[i - 1] && digits[i] < digits[i + 1])) {
waviness++;
}
}
return waviness;
}
}
class Solution:
def totalWaviness(self, num1: int, num2: int) -> int:
def get_waviness(num):
digits = str(num)
if len(digits) < 3:
return 0
waviness = 0
for i in range(1, len(digits) - 1):
if ((digits[i] > digits[i - 1] and digits[i] > digits[i + 1]) or
(digits[i] < digits[i - 1] and digits[i] < digits[i + 1])):
waviness += 1
return waviness
ans = 0
for num in range(num1, num2 + 1):
ans += get_waviness(num)
return ans
class Solution {
public:
int totalWaviness(int num1, int num2) {
int ans = 0;
for (int num = num1; num <= num2; num++) {
ans += getWaviness(num);
}
return ans;
}
private:
int getWaviness(int num) {
string digits = to_string(num);
if (digits.length() < 3)
return 0;
int waviness = 0;
for (int i = 1; i < digits.length() - 1; i++) {
if ((digits[i] > digits[i - 1] && digits[i] > digits[i + 1]) ||
(digits[i] < digits[i - 1] && digits[i] < digits[i + 1])) {
waviness++;
}
}
return waviness;
}
};
var totalWaviness = function(num1, num2) {
function getWaviness(num) {
const digits = String(num);
if (digits.length < 3) {
return 0;
}
let waviness = 0;
for (let i = 1; i < digits.length - 1; i++) {
if ((digits[i] > digits[i - 1] && digits[i] > digits[i + 1]) ||
(digits[i] < digits[i - 1] && digits[i] < digits[i + 1])) {
waviness++;
}
}
return waviness;
}
let ans = 0;
for (let num = num1; num <= num2; num++) {
ans += getWaviness(num);
}
return ans;
};