`
简单的茶
  • 浏览: 87695 次
  • 性别: Icon_minigender_2
  • 来自: 昆明
社区版块
存档分类
最新评论

java 实现字符串逆置

 
阅读更多
题目:
    写一个函数,将一个字符串变成倒序,结果存于原字符串,不得额外分配空间保存字符串。例如:abcdef 经变换后为 fedcba

算法思路:
     采用递归算法,字符两两交换。

package reverseString;

public class ReverseString
{

/**
* @param args
*/
public static void main(String[] args)
{
String test = "12345";
System.out.println(reverse(test, 0, (test.length() - 1)));
}

private static String reverse(String string, int startIndex, int endIndex)
{
if (startIndex >= endIndex)
return string;

// swap char at startIndex and endIndex
char characterAtEnd = string.charAt(endIndex);

if ((endIndex + 1) < string.length())
   string = string.substring(0, endIndex) +
string.charAt(startIndex) +
string.substring(endIndex + 1, string.length());
else
string = string.substring(0, endIndex) + string.charAt(startIndex);


  string = string.substring(0, startIndex) +
      characterAtEnd +
      string.substring(startIndex + 1, string.length());


  return reverse(string, ++startIndex, --endIndex);
}

}
分享到:
评论

相关推荐

    汇编逆置输出

    5. **字符串处理**:读取用户输入的字符串,并进行逆序输出。 6. **程序结构**:理解代码段、数据段和堆栈段的作用及其相互之间的关系。 通过以上分析可以看出,该程序是一个典型的汇编语言示例,适合于初学者学习...

    用JAVA实现DES加密解密

    在给出的代码片段中,可以看到`DesUtil`类中包含了一个构造函数,用于将字符串形式的密钥转换为字节数组`bytekey`。这是因为DES算法接受的密钥长度固定为64位,但实际上只使用了其中的56位,剩下的8位作为奇偶校验位...

    java开发施展经典习题答案完整版

    上述知识点涵盖了Java编程基础、数组操作、循环控制、面向对象设计、字符串处理以及正则表达式的应用等多个方面。这些知识点对于初学者来说,都是构建坚实编程基础的重要组成部分。掌握这些知识点,能够帮助初学者更...

    java实现置换密码加密解密

    Java代码中使用了`Scanner`类来获取用户输入的明文字符串,通过`System.out.println`方法输出加密和解密的结果。此外,代码中通过二维数组来模拟明文分组的存储,使用一维数组来存储秘钥。实际编码时,需要特别注意...

    以前的算法小技巧1

    4. **字符串逆置**:可以通过双指针法实现字符串的反转,一个指针从前往后,一个指针从后往前,交换对应位置的字符。 5. **保留小数位数**:使用`DecimalFormat`类或`String.format()`方法可以控制浮点数的显示精度...

    数据结构单链表的实验报告

    首先,我们需要将输入的字符串分解成运算符和运算数,这可以通过遍历字符串并检查每个字符是否在运算符集合中来完成。运算数是数字,可以直接入栈;运算符则需要与栈顶的运算符进行优先级比较。优先级可以通过为每个...

    DES源代码Java版

    4. **数据转换**:由于Java的`Cipher`接口处理的是字节数组,所以可能需要将输入字符串转换为字节,解密后将字节还原为字符串。 5. **界面与内核的分离**:界面部分负责用户交互,如输入数据和显示结果,而内核部分...

    程序员数据结构学习笔记

    线性数据结构包括线性表、栈、队列、数组和字符串。线性表是一种有序的数据集合,可以是动态或静态的,如C++中的vector或Java中的ArrayList。栈遵循“后进先出”原则,常用于递归和表达式求值。队列则遵循“先进先出...

    java代码-2.任意给出一个十进制整数,将十进制整数转换为二进制数。

    Java的`Integer`类提供了`toBinaryString()`方法,它可以直接将十进制整数转换为二进制字符串。以下是一个简单的示例: ```java public class Main { public static void main(String[] args) { int decimal...

    杭州端点公司java面试题.md

    - `equals(Object anObject)` 用来比较两个字符串的内容是否相等。 - `compareTo(String anotherString)` 用来比较字符串大小。 **7. Object中的方法** - `Object` 类是所有 Java 类的基类,提供了一些基本方法,...

    C++数据抽象和问题求解(第6版).[美]Frank M. Carrano(带详细书签).pdf

    6.2.2 识别语言中的字符串 199 6.3 栈在代数表达式中的应用 200 6.3.1 计算后缀表达式 201 6.3.2 中缀表达式与后缀表达式的等价转换 202 6.4 使用栈查找航班图 205 6.5 栈和递归的关系 212 C++片段3 异常 221 ...

    淘宝笔试~~~~~~~~~~~~

    1. **花名统计**:这是一个简单的字符串处理和分类问题,可以用Java通过读取文本文件,遍历并根据花名的出处进行分类计数。这涉及到文件I/O操作、字符串处理和数据结构(如HashMap)的使用。 2. **队列元素逆置**:...

    128位AES加密算法C语言实现

    /将二进制位串转为长度为8的字符串水 int Bit64ToChar8 (ElemType bitL64, ElemType ch18) int cnt memset(ch, 0, 8) for(ent-0: cnt&lt;8: cnt++i BitToByte(bit+(cnt&lt;&lt;3), ch+cnt) return 0 /*生成子密钥 ...

    我的校园招聘面试经验集锦

    - 判断回文:检查字符串是否正读和反读相同。 - 数组中大于平均值的个数:计算数组平均值,然后统计大于该平均值的元素数量。 - 单链表逆置:反转链表的顺序。 - 树的遍历:深度优先搜索(DFS)和广度优先搜索...

    淘宝笔试题

    本题考察了考生对文件操作、字符串处理及基本数据结构(如哈希表)的理解与应用能力。 **详细解析:** 1. **文件读取与处理:** - 使用Java中的`FileReader`或`BufferedReader`来读取存储花名及其出处的文本文件。...

Global site tag (gtag.js) - Google Analytics