博客
关于我
剑指offer之面试题58:翻转字符串
阅读量:324 次
发布时间:2019-03-04

本文共 1037 字,大约阅读时间需要 3 分钟。

翻转字符串的任务是将给定句子中的单词顺序倒转,但保持每个单词内部的顺序不变。例如,输入"I am a student.",输出应该是"student. a am I"。下面将详细阐述实现步骤和代码。

实现步骤

  • 处理输入字符串:首先对输入字符串进行trim处理,去除前后空格。
  • 分割单词:使用split("\s+")方法将字符串按空格分割,得到单词数组。
  • 倒序排列单词:将单词数组倒序遍历。
  • 拼接字符串:使用StringBuilder逐个拼接单词,确保每个单词之间有空格。
  • 代码实现

    package Question58;public class T01 {    public static void main(String[] args) {        String str = "  hello world!  ";        System.out.println(solve(str));    }    public static String solve(String str) {        if (str == null || str.isEmpty()) {            return "";        }        String[] words = str.trim().split("\\s+");        StringBuilder sb = new StringBuilder();        for (int i = words.length - 1; i >= 0; i--) {            sb.append(words[i]);            if (i != 0) {                sb.append(" ");            }        }        return sb.toString();    }}

    解释

  • trim处理str.trim()去除字符串前后空格,确保分割后的单词数组不包含空字符串。
  • split方法:利用split("\\s+")按多个空格分割,得到不含空字符串的单词数组。
  • 倒序遍历:从单词数组最后一个元素开始,逐个添加到StringBuilder中。
  • 拼接单词:在逐个添加单词时,检查是否是最后一个单词,决定是否添加空格。
  • 这个方法确保了单词顺序被正确翻转,同时保持每个单词的内部顺序和标点符号不变,有效解决了问题。

    转载地址:http://ijjq.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 实战—使用YOLOv8图像分割实现路面坑洞检测(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战篇——基于YOLOv8和OpenCV实现车速检测(详细步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战|OpenCV实时弯道检测(详细步骤+源码)
    查看>>
    OpenCV与AI深度学习 | 实用技巧 | 使用OpenCV进行模糊检测
    查看>>
    OpenCV与AI深度学习 | 实践教程|旋转目标检测模型-TensorRT 部署(C++)
    查看>>
    OpenCV与AI深度学习 | 工业缺陷检测中数据标注需要注意的几个事项
    查看>>
    OpenCV与AI深度学习 | 干货 | 深度学习模型训练和部署的基本步骤
    查看>>
    OpenCV与AI深度学习 | 手把手教你用Python和OpenCV搭建一个半自动标注工具(详细步骤 + 源码)
    查看>>
    OpenCV与AI深度学习 | 水下检测+扩散模型:或成明年CVPR最大惊喜!
    查看>>
    OpenCV与AI深度学习 | 深入浅出了解OCR识别票据原理
    查看>>
    OpenCV与AI深度学习 | 深度学习检测小目标常用方法
    查看>>
    OpenCV与AI深度学习 | 超越YOLOv10/11、RT-DETRv2/3!中科大D-FINE重新定义边界框回归任务
    查看>>
    OpenCV与AI深度学习 | 高效开源的OCR工具:Surya-OCR介绍与使用
    查看>>
    OpenCV与AI深度学习|16个含源码和数据集的计算机视觉实战项目(建议收藏!)
    查看>>
    Opencv中KNN背景分割器
    查看>>
    OpenCV中基于已知相机方向的透视变形
    查看>>
    OpenCV中的监督学习
    查看>>
    opencv中读写视频
    查看>>
    OpenCV中遇到Microsoft C++ 异常 cv::Exception
    查看>>
    opencv之cv2.findContours和drawContours(python)
    查看>>