当前位置: 首页 > news >正文

常见算法题目3 -反转字符串

算法题目3 - 给定一个字符串,请输出其反转字符串

1. 问题描述

给定一个字符串,输出其反转后的字符串。
例如:

 String str = "Hello";输出:olleH

以下介绍双指针法和库函数发实现。

2. 算法解决

2.1 双指针法

维护左、右两个指针,依次循环交换值,代码如下:

/*** 题目:反转字符串* 给定一个字符串,返回改字符串的反转字符串,例如 "Hello" -> "olleH"* 双指针法 时间复杂度 O(n)* @param str* @return*/public static String reverseStr1(String str) {// 转换为字符数组char[] charArray = str.toCharArray();// 左指针int left = 0;// 右指针int right = charArray.length - 1;while (left < right) {// 左右数据交换char tempChar = charArray[left];charArray[left] = charArray[right];charArray[right] = tempChar;left++;right--;}return new String(charArray);}
2.2 库函数法

直接利用当前项目包中的第三方库函数或工具类求解:

 /*** 题目:反转字符串* 给定一个字符串,返回改字符串的反转字符串,例如 "Hello" -> "olleH"* 使用库函数 时间复杂度 O(n)* @param str* @return*/public static void reverseStr2(String str) {// StringBuilder的函数 reverse()String reverse1 = new StringBuilder(str).reverse().toString();System.out.println("反转字符串,使用库函数-StringBuilder:" + reverse1);// hutool 工具类// String reverse2 = StrUtil.reverse(str);//System.out.println("反转字符串,使用hutool工具类:" + reverse2);}

3. 测试

调用测试:

public class ReverseStrTest {public static void main(String[] args) {String str = "Hello";String reverseStr1 = reverseStr1(str);System.out.println("双指针法反转字符串:" + reverseStr1);System.out.println("========================");reverseStr2(str);}}

打印结果:
在这里插入图片描述

4. 总结

方法优点缺点适用场景
双指针法显式展示算法逻辑,面试常用代码量稍多面试、算法题
库函数法代码简洁,高效隐藏实现细节实际开发、快速实现需求

相关文章:

  • 《P3435 [POI 2006] OKR-Periods of Words》
  • Tabular Editor为PowerBI度量值建立一级或多级文件夹的两种方法
  • SDC命令详解:使用set_logic_dc命令进行约束
  • OKX交易平台有哪些优势引领行业变革?——XBIT平台动态追踪
  • 探索C++对象模型:流插入提取探讨、const修饰、初始化列表(下篇)
  • 图像去雾算法研究报告
  • 记录python在excel中添加一列新的列
  • 【场景分析】基于概率距离快速削减法的风光场景生成与削减方法
  • 构建安全AI风险识别大模型:CoT、训练集与Agent vs. Fine-Tuning对比
  • Maven:在原了解基础上对pom.xml文件进行详细解读
  • 【MySQL系列】 MySQL 中的 TINYINT 类型
  • 如何用事件风暴构建领域模型?
  • 梯度优化提示词:精准引导AI分类
  • 【Redis】分布式缓存的一系列问题(持久化,主从集群,哨兵,分片集群)
  • CMake基础:CMakeLists.txt 文件结构和语法
  • 深入理解 Redis 哨兵模式
  • 理论篇五:如何优化Webpack的打包速度
  • React从基础入门到高级实战:React 基础入门 - React Hooks 入门
  • [创业之路-374]:企业战略管理案例分析-战略制定/设计-市场洞察“五看”:看宏观之当前的国际环境、国家产业政策中的机会与风险
  • C++搜索二叉树
  • 两个相同的网站对做优化有帮助/曲靖百度推广
  • 奶茶加盟网站建设公司哪家好/seo门户网站优化
  • 南京网站建设公司/裤子seo关键词
  • wordpress 会员付费/seo是一种利用搜索引擎
  • 网站建设的比较合理的流程/临沂网站建设
  • 网站如何做秒杀活动/代哥seo