01/10/2018, 17:19

Làm sao để đếm vị trí xuất hiện của một giá trị trong một chuỗi

Em có một bài tập về đếm vị trí xuất hiện của một số trong một chuỗi. Nhưng em không biết làm thế nào để xuất ra được như yêu cầu và làm thế nào để nó có thể kiểm tra đến hết chuỗi được ạ?
Cụ thể như thế này ạ

Assume s is a string of numbers.
Write a program that checks the string s for the values ‘2’, '3', ‘5’ and ‘7’. When one of the values is found in the string, record its position within the string and continue to check for more occurrences. Finally, output the results found.
For example, if s='568714523645873', your program should print:

2 - 7
3 - 8 14
5 - 0 6 11
7 - 3 13

Em cảm ơn nhiều ạ

Trương Tấn Phát viết 19:19 ngày 01/10/2018

Vòng lặp, mảng.

Nguyễn Việt Đức viết 19:34 ngày 01/10/2018

dùng vòng lặp duyệt qua từng phần tử của mảng. So sánh với giá trị cần check .

Ngan Nguyen viết 19:20 ngày 01/10/2018

e là người mới, a cho e hỏi là dùng vòng lặp để xét các phần tử của list kiểu gì ạ? em cũng hay bị lỗi kiểu dữ liệu nữa

Thân Hoàng viết 19:27 ngày 01/10/2018

Chắc đúng ý bạn rồi nhỉ

Trọng Nghĩa viết 19:33 ngày 01/10/2018

Có một số giải pháp cho bài toán của bạn: https://stackoverflow.com/questions/2161752/how-to-count-the-frequency-of-the-elements-in-a-list/2162045

Trương Tấn Phát viết 19:22 ngày 01/10/2018
s = "568714523645873"
r = [[] for i in range(10)]
for i in range(len(s)):
    r[int(s[i])].append(i)

n = "2357"
p = ""
for i in range(len(r)):
    if(str(i) in n):
        p += str(i)+" - "
        for j in r[i]:
            p += str(j)+" "
        p += "\n"
print(p)

Kết quả:

Ideone.com

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

Nếu không hiểu thì học lại cơ bản python (lặp và mảng)

Bài liên quan
0