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
- CTCI---8.1.2
- CTCI---8.1.1
- CTCI---8.1.3
- CTCI---8.1.4
- CTCI---8.1.5
- CTCI---8.1.7
- CTCI---8.2.2
- [google面试CTCI] 1-2 逆转c风格字符串
- [google面试CTCI] 2-0.链表的创建
- [google面试CTCI] 2-1.移除链表中重复元素
- [CTCI] Hanoi
- [google面试CTCI] 2-2 找出链表的倒数第n个节点元素
- [google面试CTCI] 2-3 只给定链表中间节点指针,如何删除中间节点?
- [google面试CTCI] 2-4 计算两个单链表所代表的数之和
- 《CTCI》1.3 变位词
- 《CTCI》1.5 字符串“压缩”
- 《CTCI》3.7 “猫狗”队列
- 《CTCI》3.4 汉诺塔游戏
- 数据区,代码区,堆栈区,操作系统堆栈
- QT4 编译错误 error: collect2: ld returned 1 exit status
- 一道面试题,100个人围成一个圈,然后报数。
- Oracle数据库中NUMBER(x,y)数据类型详解
- 剪格子
- CTCI---8.1.2
- Error:Android Pre Dex: [android-support-v4.jar] at com.intellij.rt.execution.CommandLineWrapper.main
- Windows平台安装Beautiful Soup
- [150521]线程的同步和异步
- mysql中的触发器
- 造 X-Forwarded-For
- MTK屏幕闪屏如何Debug
- 泛型学习
- LintCode-三角形计数