CTCI---8.1.2

来源:互联网 发布:js特殊字符转义 编辑:程序博客网 时间:2024/05/11 13:49

用C或C++实现一个 void reverse(char *str)函数,几即反转一个null结尾的字符串。

/** *  */package Chapter_8;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Scanner;/** * @author MohnSnow * @time 2015年5月21日 下午5:57:30 *  */public class chapter8_1_2 {<span style="white-space:pre"></span>/**<span style="white-space:pre"></span> * @param argsmengdx<span style="white-space:pre"></span> *            -fnst<span style="white-space:pre"></span> */<span style="white-space:pre"></span>private static void strReverse(String str) {<span style="white-space:pre"></span>for (int i = str.length() - 1; i >= 0; i--) {<span style="white-space:pre"></span>char j = str.charAt(i);// 关键知识点<span style="white-space:pre"></span>System.out.print(j + " ");<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}<span style="white-space:pre"></span>public static void main(String[] args) {<span style="white-space:pre"></span>Scanner in = new Scanner(System.in);<span style="white-space:pre"></span>String a = in.nextLine();<span style="white-space:pre"></span>// StringBuffer b = new StringBuffer(a);线程安全的StringBufferJDK方法测试<span style="white-space:pre"></span>// System.out.println(b.reverse());<span style="white-space:pre"></span>// strReverse(a);<span style="white-space:pre"></span>StringReverse StrRev = new StringReverse();<span style="white-space:pre"></span>System.out.println(StrRev.swapWords(a));<span style="white-space:pre"></span>}}/* * 以空格作为间隔进行反转 asdf ds dsf 转为 dsf ds fdsa */class StringReverse {<span style="white-space:pre"></span>public StringReverse() {<span style="white-space:pre"></span>// System.out.println(this);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>public void swap(char[] arr, int begin, int end) {<span style="white-space:pre"></span>while (begin < end) {<span style="white-space:pre"></span>char temp = arr[begin];<span style="white-space:pre"></span>arr[begin] = arr[end];<span style="white-space:pre"></span>arr[end] = temp;<span style="white-space:pre"></span>begin++;<span style="white-space:pre"></span>end--;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}<span style="white-space:pre"></span>// I love java<span style="white-space:pre"></span>public String swapWords(String str) {<span style="white-space:pre"></span>// System.out.println(this);<span style="white-space:pre"></span>char[] arr = str.toCharArray();// 把String转换为Char数组<span style="white-space:pre"></span>swap(arr, 0, arr.length - 1);<span style="white-space:pre"></span>System.out.println(arr);<span style="white-space:pre"></span>int begin = 0;<span style="white-space:pre"></span>for (int i = 1; i < arr.length; i++) {<span style="white-space:pre"></span>if (arr[i] == ' ') {<span style="white-space:pre"></span>swap(arr, begin, i - 1);<span style="white-space:pre"></span>begin = i + 1;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}<span style="white-space:pre"></span>return new String(arr);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>/*<span style="white-space:pre"></span> * public static void main(String[] args) { String str = "I love java";<span style="white-space:pre"></span> * System.out.println(new StringReverse().swapWords(str)); }<span style="white-space:pre"></span> */}class Main {<span style="white-space:pre"></span>public static void main(String[] args) {<span style="white-space:pre"></span>Scanner sc = new Scanner(System.in);<span style="white-space:pre"></span>String str = sc.nextLine();<span style="white-space:pre"></span>String[] sArr = str.split(" ");// I love java<span style="white-space:pre"></span>List<String> list = new ArrayList<String>();<span style="white-space:pre"></span>list = Arrays.asList(sArr);<span style="white-space:pre"></span>// for(int i=0;i<sArr.length;i++){<span style="white-space:pre"></span>// list.add(sArr[i]);<span style="white-space:pre"></span>// }<span style="white-space:pre"></span>Collections.reverse(list);<span style="white-space:pre"></span>for (String word : list) {<span style="white-space:pre"></span>System.out.print(word + " ");<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}}

相关链接

0 0
原创粉丝点击