纯字符串模拟题
一看到这个三进制就害怕了,还以为是什么进制转换呢,仔细一看发现是一个字符串模拟题。
直接枚举每个字符,判断这个字符是不是′.′′−′'.''-'′.′′−′和′+′'+'′+′,而且还要在字符是′−′'-'′−′的情况下将下一个字符变成空格,以防多输出一个。
代码:
#include<bits/stdc++.h>//万能头 using namespace std; string s; int main(){ cin>>s;//将数据读入进来 for(int i=0;i<s.size();i++){ if(s[i]=='.')//如果这个字符是.的话 cout<<"0";//按照题目要求输出0 else if(s[i]=='-'&&s[i+1]=='.')//如果这个字符是-号的话并且下一个字符是.的话 cout<<"1",s[i+1]=' ';//输出1,并将下一个字符变成空格(防止多输出一个0) else if(s[i]=='-'&&s[i+1]=='-')//如果这个字符是-号的话并且下一个字符也是-的话 cout<<"2",s[i+1]=' ';//输出2,并将下一个字符变成空格(防止多输出一个1) } return 0;//结束了 }
本文详细解析了一个三进制字符串模拟题的解决方法,通过枚举字符并判断是否为特定符号,如′.′、′−′和′+′,实现从三进制到十进制的转换。代码中特别处理了连字符′−′的情况,避免了输出冗余。
479

被折叠的 条评论
为什么被折叠?



