Tôi là một lập trình viên mới bắt đầu và tôi đang cố gắng tìm sự thay đổi theo chu kỳ của chuỗi. Một sự thay đổi theo chu kỳ của một chuỗi có được bằng cách di chuyển các ký tự từ đầu chuỗi đến cuối chuỗi. Ví dụ, sự thay đổi theo chu kỳ của ABCDE là: ABCDE, BCDEA, CDEAB, DEABC, EABCD. Đầu vào sẽ bao gồm chính xác hai dòng chỉ chứa chữ hoa. Dòng đầu tiên sẽ là văn bản t và dòng thứ hai sẽ là chuỗi S.
Đầu ra Có nếu văn bản, t, chứa một sự thay đổi theo chu kỳ của chuỗi, S. Nếu không, đầu ra không.
Đầu vào mẫu:
ABCCDEABAA
ABCDE
Đầu ra cho đầu vào mẫu:
yes
Tom Karzes
20.4K2 Huy hiệu vàng17 Huy hiệu bạc37 Huy hiệu đồng2 gold badges17 silver badges37 bronze badges
3
Vì vậy, về cơ bản, bạn có thể nối chuỗi S
vào chính nó và hãy gọi chuỗi này S2
s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
Vì độ dài của chuỗi S
là 5, bạn sẽ phải kiểm tra xem
yes
1 có tồn tại trong yes
2 hay không.Mã số
t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
Đầu ra
Checking for ABCDE in T = False
Checking for BCDEA in T = False
Checking for CDEAB in T = True
Checking for DEABC in T = False
Checking for EABCD in T = False
Độ phức tạp về thời gian:
3 : yes
yes
3Đã trả lời ngày 19 tháng 3 lúc 8:31Mar 19 at 8:31
DollarakshaydollarakshayDollarAkshay
2.0741 Huy hiệu vàng19 Huy hiệu bạc38 Huy hiệu đồng1 gold badge19 silver badges38 bronze badges
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
- Bàn luận
- Đưa ra một chuỗi kích thước n, viết các chức năng để thực hiện các hoạt động sau trên chuỗi.
Examples:
Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"
Trái [hoặc ngược chiều kim đồng hồ] xoay chuỗi đã cho bằng các phần tử d [trong đó dWe have existing solution for this problem please refer Left Rotation and Right Rotation of a String link. We will solve this problem quickly in python using String Slicing. Approach is very simple,
- Phải [hoặc theo chiều kim đồng hồ] xoay chuỗi đã cho bằng các phần tử d [trong đó dfirst & second, for Left rotation Lfirst = str[0 : d] and Lsecond = str[d :]. For Right rotation Rfirst = str[0 : len[str]-d] and Rsecond = str[len[str]-d : ].
- Phương pháp 1: Chúng tôi có giải pháp hiện tại cho vấn đề này, vui lòng tham khảo xoay bên trái và xoay bên phải của một liên kết chuỗi. Chúng tôi sẽ giải quyết vấn đề này một cách nhanh chóng trong Python bằng cách sử dụng cắt chuỗi. Cách tiếp cận rất đơn giản,second + first accordingly.
Implementation:
Python3
Chuỗi riêng biệt trong hai phần thứ nhất và thứ hai, cho xoay bên trái lfirst = str [0: d] và lsecond = str [d:]. Đối với vòng quay bên phải rfirst = str [0: len [str] -d] và rsecond = str [len [str] -d:].
Bây giờ kết hợp hai phần này thứ hai + đầu tiên cho phù hợp.
yes
4 yes
5yes
6yes
7yes
8yes
9s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 yes
6s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
2223 s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
4yes
8s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
6s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 yes
6s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
9yes
8t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
1s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 yes
6__22223 t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
6t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
7t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
8yes
6Checking for ABCDE in T = False
Checking for BCDEA in T = False
Checking for CDEAB in T = True
Checking for DEABC in T = False
Checking for EABCD in T = False
0Checking for ABCDE in T = False
Checking for BCDEA in T = False
Checking for CDEAB in T = True
Checking for DEABC in T = False
Checking for EABCD in T = False
1____42yes
8Checking for ABCDE in T = False
Checking for BCDEA in T = False
Checking for CDEAB in T = True
Checking for DEABC in T = False
Checking for EABCD in T = False
4s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 yes
6__22222222222222222222222yes
8Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"5
Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"6
Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"7
Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"8
yes
8Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"5
Left Rotation : eksforGeeksGe Right Rotation : ksGeeksforGee1
Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"7
Left Rotation : eksforGeeksGe Right Rotation : ksGeeksforGee3
yes
8Left Rotation : ksGeeksforGee Right Rotation : ksGeeksforGee4
s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0Left Rotation : ksGeeksforGee Right Rotation : ksGeeksforGee6
yes
8yes
5yes
6S
0Output:
Left Rotation : eksforGeeksGe Right Rotation : ksGeeksforGee
Left Rotation : eksforGeeksGe
Right Rotation : ksGeeksforGee
4 Left Rotation : eksforGeeksGe
Right Rotation : ksGeeksforGee
5
0s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
Left Rotation : eksforGeeksGe
Right Rotation : ksGeeksforGee
8We use extended string to rotate the string. We will solve this problem quickly in python by slicing extended string. Approach is very simple,
yes
8yes
6 s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 Left Rotation : ksGeeksforGee Right Rotation : ksGeeksforGee2
Now print this string.
Implementation:
Python3
Phương pháp 2: Chúng tôi sử dụng chuỗi mở rộng để xoay chuỗi. Chúng tôi sẽ giải quyết vấn đề này một cách nhanh chóng trong Python bằng cách cắt chuỗi mở rộng. Cách tiếp cận rất đơn giản,
Sử dụng chuỗi mở rộng extend_str, cho vòng quay bên trái lfirst = extended_str [n: l1+n]. Đối với vòng quay bên phải rfirst = str [l1-n: l2-n] .now in chuỗi này. & Nbsp;
yes
4 S
2yes
8S
4s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 S
6Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"7
S
8yes
8S2
0s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
7S2
3yes
8S2
5s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
7S2
8‘
yes
8yes
9s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0 yes
08Checking for ABCDE in T = False
Checking for BCDEA in T = False
Checking for CDEAB in T = True
Checking for DEABC in T = False
Checking for EABCD in T = False
1yes
10____41yes
04yes
8Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"5
t = 'ABCCDEABAA'
s = 'ABCDE'
s2 = s + s
n = len[s]
for i in range[n]:
flag = False
if s2[i:i+n] in t:
flag = True
print[f"Checking for {s2[i:i+n]:s} in T = {flag}"]
8yes
16yes
17yes
8Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"5
Left Rotation : eksforGeeksGe Right Rotation : ksGeeksforGee1
Input : s = "GeeksforGeeks" d = 2 Output : Left Rotation : "eksforGeeksGe" Right Rotation : "ksGeeksforGee" Input : s = "qwertyu" d = 2 Output : Left rotation : "ertyuqw" Right rotation : "yuqwert"7
Left Rotation : eksforGeeksGe Right Rotation : ksGeeksforGee3
yes
8Left Rotation : ksGeeksforGee Right Rotation : ksGeeksforGee4
s = 'ABCDE'
s2 = s + s # s2 = 'ABCDEABCDE'
0Left Rotation : ksGeeksforGee Right Rotation : ksGeeksforGee6
yes
8yes
5yes
6S
0Đầu ra
Left Rotation : ksGeeksforGee Right Rotation : ksGeeksforGee