对称数,新的知识,哈哈哈。
同时得能想到,用map保存,而且是对应pair,6-9,9-6这样的来保存查找,这个和2Sum的找key很像啊。
注意,是
left <= right还有那是 || 的关系!
public class Solution {
public boolean isStrobogrammatic(String num) {
if (num == null || num.length() == 0) {
return true;
}
Map<Character, Character> map = new HashMap<>();
map.put('0', '0');
map.put('1', '1');
map.put('6', '9');
map.put('8', '8');
map.put('9', '6');
int left = 0, right = num.length() - 1;
while (left <= right) {
char lc = num.charAt(left);
char rc = num.charAt(right);
//if (!map.containsKey(lc) && !map.get(lc).equals(rc)) {
if (!map.containsKey(lc) || !map.get(lc).equals(rc)) {
return false;
}
left++;
right--;
}
return true;
}
}

本文介绍了一种判断字符串是否为对称数的有效算法,并通过使用哈希映射来提高查找效率。该方法适用于如数字“69”这样旋转180度后仍保持数值不变的情况。文章提供了一个Java实现示例。
1557

被折叠的 条评论
为什么被折叠?



