【华为机试】单词倒叙

打印 上一主题 下一主题

主题 542|帖子 542|积分 1626


  • 题目描述:
    输入单行英文句子,里面包含英文字母,空格以及,.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句
  • 输入描述:
    输入字符串 S, S 的长度 1≤N≤100
  • 输出描述:
    输出逆序后的字符串。
  • 解题思路:
    遍历给定句子,判断如果字母,则插入到指定位置,如果是指定标点,则追加到后面
  • 代码:
    1. public String solution(String sentence) {
    2.     StringBuilder result = new StringBuilder();
    3.     // 字符插入位置
    4.     int start = 0;
    5.     for (int i = 0; i < sentence.length(); i++) {
    6.         // 如果是普通字符,插入到指定位置,如果是指定标点符号,则追加到后面
    7.         char c = sentence.charAt(i);
    8.         if (c == ',' || c == '.' || c == '?' || c == ' ') {
    9.                         // 插入位置变更为标点符号之后一个位置,保证每个单词顺序不会发生变化
    10.             start = i+1;
    11.             result.append(c);
    12.             continue;
    13.         }
    14.         result.insert(start, c);
    15.     }
    16.     return result.toString();
    17. }
    复制代码
以上是我的思路,如果有遗漏的点请在评论区指出,谢谢

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表