1 条题解

  • 0
    @ 2026-6-19 10:30:59

    📝 题目大意

    给定一个由小写英文字母和 '.' 组成的字符串 SS,删除其中所有的 '.' 并输出剩余字符组成的字符串。

    💡 解题思路

    1. 题目分析:字符串长度 1S1001 \le |S| \le 100,数据量极小,只需遍历字符串,跳过 '.' 字符即可。需要注意:当 SS 全为 '.' 时,输出应为空行(样例 3)。

    2. 算法推导:遍历字符串 SS 的每个字符 s[i]s[i],若 s[i]s[i] \neq '.',则直接输出该字符。无需额外存储,边读边输出即可。

    3. 边界与细节

      • 字符串可能全为 '.',此时不应输出任何字符(仅输出换行)。
      • 字符串可能不含任何 '.',此时原样输出整个字符串。
      • 使用 cout 逐个字符输出,main 函数末尾 return 0 会自动刷新输出缓冲区并换行。

    ⏱️ 复杂度分析

    • 时间复杂度O(N)O(N),其中 N=SN = |S|,只需一次遍历。
    • 空间复杂度O(N)O(N),仅存储输入字符串。

    💻 标准代码 (C++)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main () {
    	string s;
    	cin >> s;
    	// 遍历字符串的每个字符
    	for (int i = 0;i < s.size();i++)
    		// 如果不是 '.' 就输出
    		if (s[i] != '.') cout << s[i];
    	return 0;
    }
    
    • 1

    信息

    ID
    830
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者