
甜点就足以说明这题的难度。
先说好,我的解法可能不是最好的,但应该是最好理解的,新手也能明白。
首先我们拿到输入的字符串,进行判断,如果当前位置是字符,我们就让这个位置一直后移,直到这个位置是个数字。
如果这个位置是数字,我们就拿一个字符串开始记着,如果这个字符串的长度大于我们当前要返回的字符串长度,就更新返回的字符串。
具体看代码:
#include#include using namespace std; int main() { string s1;//输入的字符串 string s;//返回的字符串 int pos = 0;//位置 getline(cin, s1); while(pos < s1.size()) { if(!isdigit(s1[pos]))//如果这个位置不是字符 { while(pos < s1.size() && !isdigit(s1[pos]))//不是就一直往后找 { pos++; } string count;//找到了,开始拿字符串接收 while(pos < s1.size() && isdigit(s1[pos]))//一直加到不是数字位置 { count+=s1[pos]; pos++; } s = s.size()>count.size()?s:count;//开始判断长度 } } cout<