A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside down).
Write a function to determine if a number is strobogrammatic. The number is represented as a string.
For example, the numbers "69", "88", and "818" are all strobogrammatic.
Solution:
1 public class Solution { 2 public boolean isStrobogrammatic(String num) { 3 int p1 = 0, p2 = num.length() - 1; 4 while (p1 <= p2) { 5 if (!isValidPair(num.charAt(p1), num.charAt(p2))) 6 return false; 7 p1++; 8 p2--; 9 }10 return true;11 }12 13 public boolean isValidNum(int num) {14 if (num == 0 || num == 1 || num == 6 || num == 8 || num == 9)15 return true;16 17 return false;18 }19 20 public boolean isValidPair(char c1, char c2) {21 int num1 = c1 - '0';22 int num2 = c2 - '0';23 if (!isValidNum(num1) || !isValidNum(num2))24 return false;25 26 if ((num1 == 6 && num2 != 9) || (num1 == 9 && num2 != 6)) {27 return false;28 } else if (num1 + num2 != 15 && num1 != num2) {29 return false;30 }31 return true;32 }33 }