题解
【基础】删除字符串中间的*
1 条题解
-
0
解题思路
从左到右检查输入,遇到题目要求删除的内容就跳过,其他内容正常输出。
参考代码
// 读取题目给出的数据。 // 先逐个检查输入内容,只保留题目要求的字符或数字。 // 这道题的做法:先读入题目给出的数据,再用简单的循环和判断完成要求。 #include<bits/stdc++.h> using namespace std; int main(){ string s; int k1=0,k2=0; cin>>s; for(int i=0;i<s.size();i++){ if(s[i]=='*'){ k1++; }else{ break; } } for(int i=s.size()-1;i>=0;i--){ if(s[i]=='*'){ k2++; }else{ break; } } for(int i=0;i<k1;i++){ cout<<"*"; } for(int i=0;i<s.size();i++){ if(s[i]!='*'){ cout<<s[i]; } } for(int i=0;i<k2;i++){ cout<<"*"; } return 0; }复杂度
只遍历输入一次,时间复杂度为 O(n),额外空间复杂度为 O(1)。
- 1