Trang chủ Tin Học Lớp 6 Cho một xâu S và số nguyên dương K. Hãy...

Cho một xâu S và số nguyên dương K. Hãy viết chương trình kiểm tra xem trong xâu S có K kí tự liền nhau giống nhau hay không? Input Specification Dòng 1 là chu

Câu hỏi :

Cho một xâu S và số nguyên dương K. Hãy viết chương trình kiểm tra xem trong xâu S có K kí tự liền nhau giống nhau hay không? Input Specification Dòng 1 là chuỗi kí tự S có độ dài nhỏ hơn 1000. Dòng 2 là số nguyên k. Output Specification In ra YES nếu thoả mãn yêu cầu bài toán, in ra NO nếu ngược lại Sample Input abcaab 2 Sample Output YES

Lời giải 1 :

Ý tưởng

Chúng ta sẽ tách xâu ra thành ít phần nhất sao cho mỗi phần chỉ có đúng 1 loại chữ cái tạo thành

Ví dụ: abcaab -> tách thành {"a","b","c","aa","b"}

Sau đó, ta sẽ duyệt qua dãy tạo được và tìm xem có phần tử nào có độ dài lớn hơn hoặc bằng k hay không. Nếu có thì in YES, nếu không thì NO.

Code

#include <bits/stdc++.h>
using namespace std;

string s;
char curChar = '!';
int k,curLen;

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

    cin >> s >> k;
    s += '!';
    for(char c: s){
        if(c == curChar) curLen++;
        else{
            if(curLen >= k){
                cout << "YES";
                return 0;
            }
            curLen = 1;
            curChar = c;
        }
    }
    cout << "NO";
    return 0;
}

Thảo luận

Lời giải 2 :

Giải:

Chúng ta sẽ tách xâu ra thành ít phần nhất sao cho mỗi phần chỉ có đúng 1 loại chữ cái tạo thành

Ví dụ: abcaab -> tách thành {"a","b","c","aa","b"}

Sau đó, ta sẽ duyệt qua dãy tạo được và tìm xem có phần tử nào có độ dài lớn hơn hoặc bằng k hay không. Nếu có thì in YES, nếu không thì NO.

Code

#include <bits/stdc++.h>
using namespace std;

string s;
char curChar = '!';
int k,curLen;

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

    cin >> s >> k;
    s += '!';
    for(char c: s){
        if(c == curChar) curLen++;
        else{
            if(curLen >= k){
                cout << "YES";
                return 0;
            }
            curLen = 1;
            curChar = c;
        }
    }
    cout << "NO";
    return 0;
}

$#Nguyenchuong$

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 6

Lớp 6 - Là năm đầu tiên của cấp trung học cơ sở. Được sống lại những khỉ niệm như ngày nào còn lần đầu đến lớp 1, được quen bạn mới, ngôi trường mới, một tương lai mới!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247