Points:
100 (p)
Time limit:
1.0s
Memory limit:
256M
Input:
stdin
Output:
stdout
Cho một xâu kí tự \(S\) chỉ toàn kí tự số \(0\) và \(1\). Biết rằng các kí tự số \(0\) đứng trước các ký tự số \(1\): \(000\ldots0011\ldots11\)
Hãy cho biết vị trí của ký tự số \(0\) cuối cùng trong dãy.
Input
- Chứa xâu kí tự \(S\) (Độ dài của xâu \(S\leq10^7\) và luôn có ký tự số \(0\) và ký tự số \(1\))
Output
- Một số nguyên dương là vị trí của ký tự số \(0\) cuối cùng trong dãy.
Example
Test 1
Input
0000011111
Output
5
Comments
code cho ae tham khao
include <iostream>
using namespace std;
int main()
{
string s;
cin>>s;
for(int i=s.size()-1;i>=0;i--){
if(s[i]=='0'){
cout<<i+1<<" ";
break;
}
}
return 0;
}
Vì số 0 luôn đứng trước số 1 nên xâu nó sẽ kiểu x0+y1 ấy, tìm x là được, x là số lần xuất hiện của 0
Heading
làm sao để làm cái này vậy mn
Hint
tìm kiếm nhị phân
n = input()
print(n.count('0'))
dùng replace 1 thành "" để đếm những số 0 còn lại
Dùng binary search
cho scratch thêm thời gian đi scratch làm chậm lắm 🙂
summary
Kiểm tra số lần xuất hiện của 0
16 more comments