zoukankan      html  css  js  c++  java
  • Lintcode: Rotate String

    Given a string and an offset, rotate string by offset. (rotate from left to right)
    
    Example
    Given "abcdefg"
    
    for offset=0, return "abcdefg"
    
    for offset=1, return "gabcdef"
    
    for offset=2, return "fgabcde"
    
    for offset=3, return "efgabcd"

    需要注意的是:if (A.length == 0) return new char[0]; 空数组

     1 public class Solution {
     2     /*
     3      * param A: A string
     4      * param offset: Rotate string with offset.
     5      * return: Rotated string.
     6      */
     7     public char[] rotateString(char[] A, int offset) {
     8         // wirte your code here
     9         if (A==null || A.length == 0) return new char[0];
    10         String str = new String(A);
    11         offset %= str.length();
    12         if (offset == 0) return str.toCharArray();
    13         String first = str.substring(0, str.length()-offset);
    14         String second = str.substring(str.length()-offset);
    15         String res = second + first;
    16         return res.toCharArray();
    17     }
    18 };

     法二(推荐):

     1 public class Solution {
     2     /**
     3      * @param str: an array of char
     4      * @param offset: an integer
     5      * @return: nothing
     6      */
     7     public void rotateString(char[] str, int offset) {
     8         // write your code here
     9         if (str==null || str.length==0) return;
    10         offset %= str.length;
    11         if (offset == 0) return;
    12         reverse(str, 0, str.length-1);
    13         reverse(str, 0, offset-1);
    14         reverse(str, offset, str.length-1);
    15     }
    16     
    17     public void reverse(char[] str, int l, int r) {
    18         
    19         while (l < r) {
    20             char temp = str[l];
    21             str[l] = str[r];
    22             str[r] = temp;
    23             l++;
    24             r--;
    25         }
    26     }
    27 }
  • 相关阅读:
    INF文件的语法解说转
    VC的拨号上网程序
    sql修复
    flash media server 2 下载 + 无限制序列号
    [原] ASPNET2.0中如何历遍GRIDVIEW
    [net2.0] ASPNET内置安全认证架构 的灵异问题~~~~
    SnagIt的Visual Studio Team System插件
    [翻译]使用HtmlAgilityPack更好的HTML分析和验证
    哪些自动化测试工具支持AJAX
    VSTT Rosario CTP
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/4427493.html
Copyright © 2011-2022 走看看