`

字符串reverse

阅读更多

package com.myway.study;

/**
 * 编程珠玑的题目:
 * 举例:比如abcdef 左移三位,则变成defabc
 * <p/>
 * 条件限制:空间限制:可用内存为几十字节
 * <p/>
 * 时间限制:花费时间与n成比例
 * User: zhangyong
 * Date: 14-5-27
 * Time: 下午8:24
 * To change this template use File | Settings | File Templates.
 */
public class Reverse {

    public static char[] reverse(char[] arr, int start, int end) {
        int n = arr.length;
        // abc  奇数
        // abcd 偶数
        int mid = (start + end) / 2;
        for (int i = start, j = end; i <= mid; i++, j--) {
            char temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        return arr;
    }

    public static char[] leftRotateString(char[] arr, int k) {
        //字符串abcdefgh -> defghabc
//      需要三步:
//      reverse(0,i-1); //cba defgh
//      reverse(i,n-1); //cba hgfed
//      reverse(0,n-1); //defghabc

        int n = arr.length;
        reverse(arr, 0, k - 1);
        reverse(arr, k, n - 1);
        reverse(arr, 0, n - 1);
        return arr;
    }

    public static void main(String[] args) {
        char[] arr = "abcdefg".toCharArray();
        leftRotateString(arr, 3);
        System.out.println(arr);
    }

}


分享到:
评论

相关推荐

    reverse字符串倒转输入

    `ReverseString`函数用于将一个字符串的单词顺序颠倒。该函数的实现细节如下: * `if (NULL == str) return;`:检查输入字符串是否为空,如果为空,则返回。 * `char *pend = str;`:定义一个指针`pend`,指向字符...

    DB2字符串处理 字符串处理 db2 函数

    REVERSE() 函数的语法为 REVERSE (),其中 character_expression 可以是字符串、常数或一个列的值。 * REPLACE() 函数:返回被替换了指定子串的字符串。REPLACE() 函数的语法为 REPLACE (, , ),用 string_expression3...

    使用递归算法来实现字符串逆序-C语言实现.zip

    在这个例子中,`reverse`函数接收一个字符串、起始位置和结束位置。在函数内部,我们首先检查起始位置是否大于等于结束位置,如果是,则递归结束。否则,交换这两个位置的字符,并对剩余部分调用`reverse`函数,使...

    Python 反转字符串(reverse)的方法小结

    `reverse()`函数用于反转列表中的元素,因此我们可以先将字符串转换为列表,反转列表,然后再使用`join()`方法将字符连接回字符串。 ```python def reverse3(s): l = list(s) l.reverse() return "".join(l) ```...

    java字符串练习

    在Java编程语言中,字符串是极其重要且常用的数据类型,尤其对于初学者来说,理解和熟练掌握字符串的操作至关重要。本文将围绕“java字符串练习”这一主题,深入探讨如何解析字符串、逆序输出字符串以及处理特定格式...

    C 语言 指针实现字符串的逆序调序输出

    在C语言中,指针是其强大的特性之一,它允许我们直接操作内存地址,因此在处理字符串时,指针能够发挥关键作用。本程序旨在通过指针实现字符串的逆序和调序输出,这两个概念是字符串操作中的常见技巧。 逆序输出...

    将输入的字符串反转 java

    这两个类提供了append()和reverse()方法,非常适合进行字符串操作。StringBuilder适用于单线程环境,而StringBuffer是线程安全的。以下是一个使用StringBuilder的例子: ```java public class StringReverse { ...

    用C++实现字符串倒序

    `std::string`类提供了许多便利的方法,其中之一就是`reverse()`,它可以方便地对字符串进行倒序。以下是使用`std::string`的示例: ```cpp #include #include int main() { std::string str = "Hello, ...

    递归实现字符串逆序

    ### 递归实现字符串逆序 #### 知识点概览 本文将详细介绍如何使用C++中的递归技术来实现字符串的逆序操作。逆序字符串是一个常见的编程问题,在多种场景下都有应用,例如文本处理、算法设计等。通过递归方法解决此...

    取字符串中字符位置

    然而,代码示例中还展示了如何结合`REVERSE`和`SUBSTRING`函数来实现特定的子字符串提取。具体而言,先反转字符串,再从中提取部分字符,最后反转回原始顺序,这是一种巧妙的方法,但在实际应用中应根据具体情况权衡...

    java 用递归实现字符串反转

    - **递归步骤**:如果字符串长度大于等于2,则通过递归调用 `reverseString(x.substring(1, x.length()))` 来反转除第一个字符外的所有字符,并将第一个字符添加到递归调用的结果末尾。 #### 四、递归过程详解 ...

    字符串反转 C# .NET

    最常用的是`string.Reverse()`,但这不是直接应用于字符串的,而是用于数组。因此,我们可以将字符串转换为字符数组,然后使用此方法: ```csharp using System; public class Program { public static void Main...

    C# 字符串反转(两种方法)

    第二种方法是将字符串转换为字符数组,然后利用`Array.Reverse()`方法对数组中的元素进行反转。这种方法更简洁,且效率较高,因为它是内置的系统函数。 ```csharp using System; class Program { static void ...

    void reverse(char *source)实现字符串逆序,递归法

    从键盘输入字符串,用函数void reverse(char *source)通过递归法实现字符串逆序.

    C++字符串完全指南.rar_C 字符串_字符串_字符串操作_读字符串

    `&lt;algorithm&gt;`头文件包含一些适用于字符串的操作,如`std::sort()`、`std::reverse()`等。 7. **字符串与I/O流** `std::cout`可以直接输出`std::string`对象,而`std::cin`可以通过插入器`&gt;&gt;`读取字符串,但如前所...

    Reverse&amp;Replace 字符串加密解密

    "Reverse&Replace 字符串加密解密"的主题涉及到两个关键的字符串处理函数:`Reverse`和`Replace`,它们在加密和解密过程中扮演着重要角色。这两个函数在黑客技术中也常被用来实现各种安全目的,比如隐藏信息、保护...

    修改过后的字符串处理程序

    - **反转(Reverse)**:将字符串中的字符顺序颠倒。 - **格式化(Format)**:根据模板和参数生成格式化的字符串。 在实际开发中,为了提高性能和避免内存问题,我们还需要关注字符串处理的效率。例如,频繁的字符...

    nixu.rar_Reverse_字符串 逆序

    标题中的“nixu.rar_Reverse_字符串 逆序”表明这是一个关于字符串逆序操作的教程或代码集合,可能是用汇编语言实现的。在计算机编程中,字符串逆序是一种常见的任务,它涉及到将字符串中的字符顺序反转。这在很多...

    C语言指针实现字符串的反转

    第二个程序定义了一个reverse函数,该函数使用指针p来实现字符串的反转,并使用temp变量来交换字符串中的字符。 知识点总结 1. C语言中的指针是一种数据类型,用于存储内存中的地址。 2. 在C语言中,字符串可以...

    将字符串反转

    在Java中,可以使用StringBuilder或StringBuffer类的reverse()方法来反转字符串: ```java String strInput = "abcdef"; StringBuilder sb = new StringBuilder(strInput); String strReversed = sb.reverse()....

Global site tag (gtag.js) - Google Analytics