<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <h4>344. 反转字符串</h4>
讯享网
题目:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 的形式给出。
解题思路:
使用异或运算来交换数组中左右两端的字符位置,从而实现字符串反转。通过异或的性质 和 ,实现原地交换,避免使用额外空间。
反思:
异或运算的三个步骤可以实现两个字符位置的交换:
由于异或操作的性质,经过三次操作后, 和 的值会互换。在 Java 中,由于 类型有固定的大小(16-bit),按位操作会被视为 类型,因此必须显式进行类型转换。
代码:
讯享网
541. 反转字符串 II
题目:
给定一个字符串 和一个整数 ,从字符串开头算起,每计数至 个字符,就反转这 个字符中的前 个字符。
- 如果剩余字符少于 个,则将剩余字符全部反转。
- 如果剩余字符小于 但大于或等于 个,则反转前 个字符,其余字符保持原样。
解题思路:
将字符串转化为字符数组,每次处理 个字符,反转前 个字符。如果剩余不足 个则全部反转,否则只反转前 个。

反思:
忘记将 写入第二个循环条件,导致数组未完全反转,修正为确保每个字符都被正确处理。
代码:
替换数字字符
题目:
给定一个字符串 ,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为 。
例如,对于输入字符串 ,函数应该将其转换为 。
解题思路:
遍历字符串中的每个字符,遇到字母保持不变,遇到数字则将其替换为 。由于替换会增加字符长度,因此需要一个新的字符数组来存储结果。
反思:
- 在第二个 循环中条件为 ,导致未能处理第一个字符,修正为 。
- 在替换数字时,必须注意新数组 的索引管理,防止越界,使用 保证按正确顺序插入字符。
代码:
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/139967.html