CTCI---8.1.2

用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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值