Mong được góp ý hướng đi cho bài toán kiểm tra chuỗi mà không sử dụng vòng lặp

Thấy bạn đề tag C++ mà mình thấy ngại. Regex trong C++ vẫn phải xử lí với while :expressionless: nên mình xài Python cho tiết kiệm calo.

import re

s = input()
k = input()
# xem xâu s có k kí tự liên tiếp hay không
# Demo regex: https://regex101.com/r/fuyA4s/4
print(re.findall("((?P<ch>[a-z])(?P=ch){"+k+"})", s) != list())

# xâu s mới
# Demo regex: https://regex101.com/r/fuyA4s/1
new_s = ''.join(re.findall("(?P<ch>[a-z])(?P=ch)*", s))
print(new_s)

Run online:

Không biết đề bài có ràng buộc cả implementation mà không phải của mình không?
Chưa chắc re.findall không sử dụng lặp.

2 dòng @_@

#include <iostream>
#include <string>
#include <regex>

int main()
{
    std::string s = "abbbccccddeff";
    std::regex repeat_re("([a-z])\\1+");
    std::cout << std::regex_replace(s, repeat_re, "$1") << "\n";
}

sao cái \ \ 1 nó bị in ra thành \\1 vậy nè @_@

thêm cái hình, discourse dỏm ko đọc được \ \ 1 :joy:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?