题目描述
输入描述:
输入为一个长度不超过1000的,仅包含‘L’,‘R’,‘.’的字符串
输出描述:
根据输入,输出一个仅由‘L’,‘R’,‘.’组成的结果字符串
示例1
输入
.L.R...LR....L.
输出
LL.RR.LLRRRLLL.
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin >> s;
string ans = s;
int tag = 0, id = -1, reg = 0;
//tag表示前面是否存在‘R’没有抵消,id表示下标,reg表示两个相邻‘R’之间是否存在‘.’
for(int i = 0; i < s.size(); i++){
if(s[i] == '.'){
if(tag == 1) reg = 1;
}
else if(s[i] == 'L'){
if(tag == 0){
for(int j = id + 1; j <= i; j++)
ans[j] = 'L';
id = i;
}
else{
int a = id, b = i;
while(a < b){
ans[a] = 'R';
ans[b] = 'L';
++a;--b;
}
tag = 0;
id = i;
reg = 0;
}
}
else{
if(reg == 1){
for(int j = id + 1; j < i; j++)
if(ans[j] == '.') ans[j] = 'R';
}
id = i;
tag = 1;
}
}
if(tag == 1){
for(int i = id + 1; i < ans.size(); i++)
ans[i] = 'R';
}
cout << ans << endl;
system("pause");
}