Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. /*
  2. * CC 150 1.2 Reverse A string
  3. * Created By Scarlett
  4. * Time: 12/19/2014 Fri 7:43 AM
  5. * 题目要求用C/C++,我们都是用java的,就简单理解成reverse a string吧
  6. * 注意题目中function return的是void, 所以reverse后的string要赋给原来的string
  7. * 用于测试时,不妨在method最后添一句system.out.println(s)
  8. *
  9. */
  10. public class Reverse {
  11. /*
  12. * 思路1:StringBuffer本身就有reverse method
  13. */
  14. public void reverse1(String s) {
  15. if (s==null) return;
  16. StringBuffer sb = new StringBuffer(s);
  17. sb.reverse();
  18. s = sb.toString();
  19.  
  20. }
  21. /*
  22. * 这是最直观的reverse,但感觉不太好。
  23. * swap了len/2次,每次生成四个新string..感觉开销太大
  24. */
  25. public void reverse(String s) {
  26. if (s==null) return;
  27. int len = s.length();
  28. for (int i=0; i<len/2; i++) {
  29. char temp = s.charAt(i);
  30. char reverse = s.charAt(len-i-1);
  31. s =s.substring(0, i)+reverse+s.substring(i+1, len-i-1)+temp+s.substring(len-i);
  32. }
  33. System.out.println(s);
  34. }
  35. /*
  36. * 思路3:转成charArray,再swap
  37. * 交换了len/2次
  38. */
  39. public void reverse3(String s) {
  40. if (s==null) return;
  41. char[] cArray = s.toCharArray();
  42. int len = cArray.length;
  43. for (int i=0; i<len/2; i++) {
  44. //Swap c[i] and c[len-i-1]
  45. char temp = cArray[i];
  46. cArray[i]= cArray[len-i-1];
  47. cArray[len-i-1] = temp;
  48. }
  49. }
  50. public static void main(String[] args) {
  51. // TODO Auto-generated method stub
  52. Reverse s= new Reverse();
  53. s.reverse("Yes, we can.");
  54. s.reverse("good.");
  55. s.reverse("great!");
  56. s.reverse("");
  57. s.reverse(null);
  58.  
  59. }
  60.  
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement