【蓝桥杯】字符串翻转问题

字符串翻转基础问题

思想:利用递归的思想,切蛋糕的思维
在这里插入图片描述
代码实现:

    public static String reverses(String s,int cur) {if(cur==0) {return String.valueOf(s.charAt(cur));}String result=s.charAt(cur)+reverses(s,cur-1);return result;}

剑指offer7. 整数反转

思路:1、先对正数进行处理,先转成字符串然后进行翻转,再回到int型;2、再对有0打头的数字进行处理;3、遇到负数时,由于负号位置不变,因此将其变成正数翻转后再拼接这个负号,最后转成int型返回

    public int reverse(int x) {int flag=0;if(x<0) {x=x+(-x)*2;flag=1;}String help=String.valueOf(x);String result=reverses(help,help.length()-1);if(result.charAt(0)=='0'&&result.length()!=1) {String n="";for(int i=1;i<result.length();i++) {n+=result.charAt(i);}result=n;}if(flag==1) {result="-"+result;}try {return Integer.valueOf(result);} catch (Exception e) {// TODO: handle exceptionreturn 0;}}public static String reverses(String s,int cur) {if(cur==0) {return String.valueOf(s.charAt(cur));}String result=s.charAt(cur)+reverses(s,cur-1);return result;}

总结:由于做题时会出现溢出的问题,将会报出异常,此时在爆出异常时可以用try。。。catch来捕获异常,对于这些不需要的部分进行处理,因此这相对于是以后处理异常而需要值的一个手段