2020.04.08参加了第一次笔试,两道算法题都没A出来,还是太菜了。
记录一下,鼓励一下自己,不要放弃!
第一题:判断是否是镜像回文字符串
有一些题目给定的固定字符之间的映射
1 <==> 1
2 <==> 5
3 <==> 8
4 <==> 7
6 <==> 9
【输入】
2(代表输入个数)
69
6996
【输出】
YES
NO
import java.util.HashMap;
import java.util.Map;
public class test0408 {
public static void main(String[] args){
System.out.println(solution.isValid("1111"));
}
}
public static String isValid(String s) {
Map<Character, Character> map = new HashMap<>();
map.put('1','1');
map.put('2','5');
map.put('5','2');
map.put('3','8');
map.put('8','3');
map.put('4','7');
map.put('7','4');
map.put('6','9');
map.put('9','6');
for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
if(s.charAt(i) != map.get(s.charAt(j))){
return "NO";
}
}
return "YES;
}
}
第二题:数字运算符添加
给定一串数字,和一个目标和K,数字之间只能通过‘+’,‘-’进行运算,求可以组成目标和的运算符组合数目
如:输入21 则可以得到1。因为2-1=1。求可以得到目标数字的解法个数。
【输入】
21 1
12345 3
【输出】
1
1
因为:2-1=1; 1-2+3-4+5=3
动态规划还是回溯法?