左右手法则的典型应用"/>
左右手法则的典型应用
问题:输入 I am a boy 输出boy a am I
要求:o(1)额外空间 o(n)时间复杂度
分析:最典型的左右手法则用法,只要两次简单的字符串逆序就可以。只是要注意思维上应该再深一点点,你就一定能得到答案。
见下代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class reverseString {public static void main(String[] args){BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));char[] stringDemo = null;try {stringDemo = bf.readLine().toCharArray();System.out.println(stringDemo);} catch (IOException e) {e.printStackTrace();}reverseString(stringDemo,0,stringDemo.length);//看第一逆序效果System.out.println(stringDemo);int tag=0;for(int i=0;i<stringDemo.length;i++){if(stringDemo[i]==' '){reverseString(stringDemo,tag,i);tag = i+1;}}//逆序后最终结果System.out.println(stringDemo);}//字符串首位交换即可public static char[] reverseString(char[] inputString,int i,int len){char temp;while(i<len/2){temp = inputString[i];inputString[i] = inputString[len-i-1];inputString[len-i-1] = temp;i++;}return inputString;}
}
更多推荐
左右手法则的典型应用
发布评论