深入浅出经典面试题之 | 您所在的位置:网站首页 › 反转字符串string › 深入浅出经典面试题之 |
深入浅出经典面试题之——反转字符串
前言
如今无论大小公司,都喜欢出一些算法题来测试面试者的算法功底或者说是计算机功底。而如今Android和Java把很多方法都封装成API了,导致我们写代码往往只是调调API,没有深入了解过一些功能的底层算法实现。因此,研究算法一是能在面试中正确快速的解决算法题,而是能提高我们的编程功底,更好地编写出高效稳健的代码。 今天,我们研究的是——反转字符串。 //输入一个字符串,输出它的倒序字符串,注意不能使用系统提供的API input: Hello output: olleH 几种解法 string: Hello length: 5 0 1 2 3 4 before: H e l l o after: o l l e H index sum 0: H--->o 0-->4 4 1: e--->l 1-->3 4 2: l--->l 2-->2 4 ... 分析字符串反转前后的规律可知: 两个反转字符串字符的下标之和为字符串长度-1. 1.使用数组最常规的解法,也是我们在面试的时候最容易想到的一种方法。 具体思路是: * 将字符串转换为char数组 * 遍历循环给char数组赋值编码实现: public static String strReverseWithArray(String string){ if(string==null||string.length()==0)return string; int length = string.length(); char [] array = string.toCharArray(); for(int i = 0;io array[4]=1001000--->72--->H编码实现: public static String strReverseWithXor(String string){ if(string==null||string.length()==0)return string; char [] array =string.toCharArray(); int length = string.length()-1; for(int i =0;i |
CopyRight 2018-2019 实验室设备网 版权所有 |