首页 > 试题广场 >

字符串替换

[编程题]字符串替换
  • 热度指数:188 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
起点APP上允许用户对作品进行评论,为了防止用户恶意评论,发表不当内容,需要对用户发布的内容进行过滤,请写程序过滤用户发布内容中带有的QQ号(6~10位数字组成)
允许对内容严格操作,如用户发表了 作者大大666666,为你点赞 ,经过过滤后也可以为作者大大,为你点赞 ,将666666过滤掉了。

示例1

输入

"作者大大666666666,为你点赞"

输出

"作者大大,为你点赞"

备注:
QQ号显然是不能以0开头的,请注意
import java.util.*;


public class Solution {
  /**
   * 过滤内容中出现的QQ号
   * @param content string字符串 待过滤内容
   * @return string字符串
   */
  public String filterContent (String content) {
    int n = content.length();
    StringBuilder ansBuilder = new StringBuilder();
    int start = -1, left = -1;
    for (int right = 0; right < n; right++) {
      char c = content.charAt(right);
      if (Character.isDigit(c)) {
        if (start == -1) {
          start = right;
        }
        if (left == -1 && c != '0') {
          left = right;
        }
      } else {
        if (left != -1) {
          int len = right - left;
          if (len < 6 || len > 10) {
            ansBuilder.append(content.substring(start, right));
          }
          left = -1;
        }
        ansBuilder.append(c);
      }
    }
    return ansBuilder.toString();
  }
}
发表于 2022-03-29 23:43:32 回复(0)