L1-058 6翻了(15分)[java][python]

题目ID :L1-058
分数 :15分
语言:Java / Python

题目描述

"666"是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字"9",意思是"6翻了",实在太厉害的意思。本题就请你编写程序,将那些过时的、只会用"666"的人用"9"来替代吧。

输入格式

输入在第一行给出一个长度不超过 10000 的、仅由英文字母构成的非空字符串。

输出格式

在一行中输出替换后的字符串。

输入样例

复制代码
wanwusanguanzhisanbaigaolaosongjiulao

输出样例

复制代码
9wusanguanzhisanbaigaolaosong9lao

解题思路

  1. 遍历字符串中的每个字符
  2. 如果遇到字符 '6',统计连续出现的个数
  3. 如果连续出现3个或更多个'6',用 '9' 替换整个连续的 '6' 串
  4. 否则保持原样输出

关键点:需要处理连续的多个 '6',用 '9' 一次性替换整个连续段。

代码实现

Java

java 复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();

        StringBuilder sb = new StringBuilder();
        int i = 0;

        while (i < s.length()) {
            if (s.charAt(i) == '6') {
                int count = 0;
                while (i < s.length() && s.charAt(i) == '6') {
                    count++;
                    i++;
                }
                if (count >= 3) {
                    sb.append('9');
                } else {
                    for (int j = 0; j < count; j++) {
                        sb.append('6');
                    }
                }
            } else {
                sb.append(s.charAt(i));
                i++;
            }
        }

        System.out.println(sb.toString());
    }
}

Python

python 复制代码
s = input()
result = []
i = 0

while i < len(s):
    if s[i] == '6':
        count = 0
        while i < len(s) and s[i] == '6':
            count += 1
            i += 1
        if count >= 3:
            result.append('9')
        else:
            result.append('6' * count)
    else:
        result.append(s[i])
        i += 1

print(''.join(result))

运行验证

样例输入 样例输出 结果
wanwusanguanzhisanbaigaolaosongjiulao 9wusanguanzhisanbaigaolaosong9lao

复杂度分析

  • 时间复杂度:O(n),遍历字符串一次
  • 空间复杂度:O(n),存储结果字符串

总结

本题主要考察字符串的遍历和连续字符的处理。核心算法:

  1. 使用指针遍历字符串
  2. 遇到连续 '6' 时统计个数
  3. 根据连续个数决定输出 '9' 还是原字符
相关推荐
程序喵大人15 小时前
【C++并发系列】第二章:锁解决了什么问题?
开发语言·c++·并发编程·
guygg8815 小时前
二维弹塑性有限元分析(von Mises 等向硬化)— MATLAB 实现
开发语言·人工智能·matlab
地瓜伯伯15 小时前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud
装不满的克莱因瓶16 小时前
【工业领域】了解目标检测基本流程——从数据到部署的完整工程化思路
人工智能·python·深度学习·机器学习·计算机视觉·目标跟踪·工业领域
叫我:松哥16 小时前
基于Python flask的中学可控智能命题系统设计与实现,整合遗传算法、DeepSeek 大模型及数据库技术构建一体化应用
数据库·人工智能·python·算法·机器学习·flask·遗传算法
Devin~Y16 小时前
大厂 Java 面试实录:从音视频内容社区到 AI RAG 的全链路技术设计
java·spring boot·redis·spring cloud·微服务·kafka·音视频
在放️16 小时前
Python 练习题讲解 2 · 循环计算
开发语言·python
装不满的克莱因瓶16 小时前
【工业领域】了解目标检测评估指标——从mAP到IoU的完整评价体系解析
人工智能·pytorch·python·深度学习·目标检测·计算机视觉·目标跟踪
m沐沐16 小时前
【计算机视觉】OpenCV 模板匹配银行卡数字识别---下
人工智能·python·opencv·计算机视觉·pycharm·numpy
CoderYanger16 小时前
A.每日一题:3612. 用特殊操作处理字符串 I
java·程序人生·leetcode·面试·职场和发展·学习方法·改行学it