Điểm:
900 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Bạn có một dãy ADN: một xâu kí tự chỉ gồm các chữ cái A
, T
, G
, C
. Hãy tìm đoạn ADN con dài nhất chỉ gồm các kí tự giống nhau.
Input
- Một dòng duy nhất chứa xâu \(s\).
Output
- In ra độ dài của đoạn ADN con dài nhất tìm được.
Constraints
- \(1 \le n \le 10^6\)
Example
Sample input
ATTCGGGA
Sample output
3
Bình luận
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
def longest_uniform_substring(s):
# Khởi tạo độ dài tối đa và độ dài hiện tại
max_length = 1
current_length = 1
Ví dụ sử dụng:
s = input().strip()
print(longest_uniform_substring(s))
Code nè ai cop cop đê nhớ xem giải thích:Giải thích:
max_length theo dõi độ dài của đoạn ký tự liên tiếp giống nhau dài nhất.
current_length theo dõi độ dài của đoạn ký tự liên tiếp hiện tại.
Vòng lặp so sánh mỗi ký tự với ký tự trước đó để xác định xem nó tiếp tục đoạn hiện tại hay bắt đầu một đoạn mới.
Kiểm tra cuối cùng đảm bảo rằng đoạn dài nhất tìm được ở cuối chuỗi được tính đến.
Thuật toán này xử lý chuỗi một cách hiệu quả trong thời gian tuyến tính, phù hợp với các đầu vào lớn lên đến
1
0
6
10
6
ký tự.
tự cách nha "_"
s=str(input())
a=[]
cnt=0
si=s[0]
for i in s:
if si==i:
cnt+=1
else:
a.append(cnt)
cnt=1
si=i
a.append(cnt)
print(max(a))
SOs