Lớp 9
Lớp 1điểm
10 tháng trước
Đỗ Hồng Hưng

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ố : 00....0011.....11. Yêu cầu: Hãy cho biết vị trí của ký tự số 0 cuối cùng trong dãy. Dữ liệu vào: Chứa xâu kí tự S (Độ dài của xâu S≤107 và luôn có ký tự số 0 và ký tự số 1) Kết quả: Một số nguyên dương là vị trí của ký tự số 0 cuối cùng trong dãy. Ví dụ Input Copy 0000011111 Output Copy Lưu ý:Dùng C++
Có ai có thể hỗ trợ mình với câu hỏi này được không? Mình thực sự đang cần tìm câu trả lời gấp lắm!

Hãy luôn nhớ cảm ơnvote 5 sao

nếu câu trả lời hữu ích nhé!

Các câu trả lời

Để giải bài toán này, ta có thể sử dụng vòng lặp để duyệt xâu kí tự từ phải sang trái và tìm vị trí cuối cùng mà ký tự số 0 xuất hiện.

**Cách 1: Sử dụng vòng lặp for**

```cpp
#include
#include
using namespace std;

int main() {
string s;
cin >> s;
int pos = -1;

for(int i = s.length() - 1; i >= 0; i--) {
if(s[i] == '0') {
pos = i;
break;
}
}

cout << pos + 1;
return 0;
}
```

**Cách 2: Sử dụng hàm find_last_of()**

```cpp
#include
#include
using namespace std;

int main() {
string s;
cin >> s;
int pos = s.find_last_of('0');

cout << pos + 1;
return 0;
}
```

Kết quả của cả hai cách là:

Input
0000011111

Output
5

Hãy giúp mọi người biết câu trả lời này thế nào?
21 vote
Cảm ơn 6Trả lời.

Đoạn code C++ để giải bài toán trên có thể như sau:
int findLastZeroPosition(string s) {
int lastZeroPos = -1;
for (int i = s.size() - 1; i >= 0; i--) {
if (s[i] == '0') {
lastZeroPos = i;
break;
}
}
return lastZeroPos;
}

int main() {
string s;
cin >> s;
int result = findLastZeroPosition(s);
cout << result;
return 0;
}

Hãy giúp mọi người biết câu trả lời này thế nào?
11 vote
Cảm ơn 0Trả lời.

Với ví dụ đầu vào là '0000011111', duyệt xâu từ phải sang trái, gặp kí tự số 0 đầu tiên tại vị trí thứ 6 (tính từ 0). Tiếp tục duyệt đến khi gặp kí tự số 1 tại vị trí thứ 10. Do đó, vị trí của kí tự số 0 cuối cùng trong dãy là 6.

Hãy giúp mọi người biết câu trả lời này thế nào?
41 vote
Cảm ơn 2Trả lời.

Duyệt xâu kí tự từ phải sang trái. Nếu gặp kí tự số 0 đầu tiên, lưu lại vị trí của nó. Tiếp tục duyệt cho đến khi gặp kí tự số 1. Khi đó, vị trí lưu lại chính là vị trí của kí tự số 0 cuối cùng trong dãy.

Hãy giúp mọi người biết câu trả lời này thế nào?
11 vote
Cảm ơn 0Trả lời.

Để trả lời câu hỏi trên, ta cần hiểu rằng sau How about, chúng ta có thể sử dụng cả V nguyên mẫu và thêm -ing.

Cách 1: Sử dụng V nguyên mẫu
- How about going to the movies tonight? (Chúng ta đi xem phim tối nay thế nào?)
- How about playing football this weekend? (Chúng ta chơi bóng đá cuối tuần này thế nào?)

Cách 2: Thêm -ing
- How about going swimming this afternoon? (Chúng ta đi bơi chiều nay thế nào?)
- How about eating at that new restaurant? (Chúng ta ăn ở nhà hàng mới đó nhé?)

Đó là cách trả lời câu hỏi về cách sử dụng sau How about là V nguyên mẫu hay thêm -ing.

Hãy giúp mọi người biết câu trả lời này thế nào?
21 vote
Cảm ơn 4Trả lời.
Câu hỏi Tin học Lớp 9
Câu hỏi Lớp 9

Bạn muốn hỏi điều gì?

Đặt câu hỏix
  • ²
  • ³
  • ·
  • ×
  • ÷
  • ±
  • Δ
  • π
  • Ф
  • ω
  • ¬
0.57100 sec| 2301.813 kb