第11题
有一个计算机,上面有按钮00、0、1、2、3、4、5、6、7、8、9。当计算器显示字符串x并技下按钮b时,字符串x会变为x+b(即在义的末尾附加b)。最初,计算器显示空字符串。给定一个目标字符串S,找到在计算机上显示S所需的最少按键次数。
例如:
如果S=“001”,最少需要2次按键:按00,然后按1。
如果S=“10009”,最少需要4次按键:按1,然后按00,然后按0,最后按9。
补全以下代码,计算显示字符串S所需的最少按键次数。下列选项中一项正确?
string s; cin>>s; int l=s.size(); int p=0,res=0; while(p<l) { res++; if(_①_)p+=2; else p++; } cout<<res<<"\n";A.
p+1<l && s[p]=='0' && s[p+1]=='0'
B.p<l && s[p] =='0' && s[p-1]=='0'
C.p-1<l && s[p]=='0' && s[p-1]=='0'
D.p<l && s[p]=='0' && s[p+1]=='0'