当前位置: 首页 > 面试题库 >

在Java中反转字符串最有效的算法是什么?

孔阳炎
2023-03-14
问题内容

在Java中反转字符串的最有效方法是什么?我应该使用某种异或运算符吗?最简单的方法是将所有字符放入堆栈中,然后再次将它们放回字符串中,但是我怀疑这是一种非常有效的方法。

并且请不要告诉我使用Java中的一些内置函数。我感兴趣的是学习如何不使用高效功能而不知道为什么高效或如何构建它。


问题答案:

您说您想知道最有效的方法,而又不想知道一些标准的内置方法。然后我对您说:RTSL(阅读资料,卢克):

查看AbstractStringBuilder#reverse的源代码,该源代码由StringBuilder#reverse调用。我敢打赌它会做一些您不会考虑进行强大的反向操作的工作。



 类似资料:
  • 问题内容: 我今天一直在搞递归。通常,编程技术使用不足。 我着手递归地反转一个字符串。这是我想出的: 我的问题:Java中有更好的方法吗? 问题答案: 最好的方法是不使用递归。这些内容通常用于教学生递归概念,而不是实际的最佳实践。因此,您的操作方式就很好。只是不要在Java应用中将递归用于现实应用中的此类内容;) PS。除了我刚才所说的,我将选择递归函数的基本情况:

  • 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"] 示例 2: 输入:["H",

  • 问题内容: 我保存在一个名为的String变量中。 我需要打印,但是要反转。 我怎样才能做到这一点?我知道Java中已经内置了某种功能。 问题答案: 你可以使用此: 或者,对于JDK 1.5之前的版本,请使用代替-它们具有相同的。感谢评论员指出,如今在没有并发问题的情况下,这是首选方法。

  • 问题内容: 在Java中比较两个字符串最快的方法是什么? 有没有比平等更快的东西? 编辑:我不能帮助澄清问题。 我有两个按字母顺序排列且大小完全相同的字符串 示例:abbcee和abcdee 字符串最长为30个字符 问题答案: 我不认为 Sun Oracle还没有最大程度地优化标准。因此,我希望它已经是最快的方法。如果您想了解他们如何实现它,请看一下它的源代码。这是摘录:

  • 问题:有一个字符串和映射,其中键-符号必须被替换,而值-新符号代替替换。 例如,假设有一个字符串,一、二、三、四。我需要用替换,用替换,用-替换,等等,得到一,t-o,三,我们的 如何以最有效的方式进行?我只找到了一个解决方案——迭代map,并为每个map条目使用。有没有更有效的方法?

  • 问题内容: ?将转换为并对其进行迭代?还有吗 问题答案: 我使用for循环来迭代字符串,并使用它来获取每个字符以进行检查。由于是通过数组实现的,因此该方法是恒定时间操作。 那就是我会做的。在我看来,这是最简单的。 就正确性而言,我认为这不存在。这完全取决于你的个人风格。

  • 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"  注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 解法: /** * @param {string} s * @

  • 问题内容: ?将转换为并对其进行迭代?还有吗 问题答案: 我使用for循环来迭代字符串,并使用它来获取每个字符以进行检查。由于是通过数组实现的,因此该charAt()方法是恒定时间操作。 那就是我会做的。在我看来,这是最简单的。 就正确性而言,我认为这不存在。这完全取决于您的个人风格。