杨泽彬的神秘商店

博客园 首页 新随笔 联系 订阅 管理

字符串 双指针的一道简单题
不过过程中遇到小问题

本题与力扣1768的交替合并字符串一样

算法不提
主要是ACM模式下的输入输出问题:

我写的是

        int in = 0;
	cin >> in;
	string a,b;
	cin.ignore();

	getline(cin,a); 
	getline(cin,b); 

不过要么超时要么有的测试用例不通过

而换成

	int in = 0;
	cin >> in;
	string a,b;
	cin.ignore();
	cin >> a;
	cin >> b;

就全部通过了

原因分析: 美团输入的分隔空白符可能是空格而不是换行 即 输入 : 4 abcd efgh
如果用getline的话就会导致 第二个getline 拿到的是空白;

结论: 输入中如果本身不带空格 就用cin读取
如果有空格 就用 getline(cin,s)读取 getline第一个空格无法忽略 需要用cin.ignore()去 吞掉。

结论

posted on 2022-08-20 20:23  快乐过了阈值  阅读(55)  评论(0)    收藏  举报