Chúng ta được yêu cầu viết một hàm JavaScript nhận vào một chuỗi và một số, chẳng hạn như n, và hàm này sẽ trả về một chuỗi mới trong đó tất cả các chữ cái của chuỗi ban đầu được lặp lại n lần
Ví dụ. Nếu chuỗi là -
const str = 'how are you'
Và số n là 2
Sau đó, đầu ra phải là -
const output = 'hhooww aarree yyoouu'
Ví dụ
Sau đây là mã -
const str = 'how are you'; const repeatNTimes = [str, n] => { let res = ''; for[let i = 0; i < str.length; i++]{ // using the String.prototype.repeat[] function res += str[i].repeat[n]; }; return res; }; console.log[repeatNTimes[str, 2]];
đầu ra
Sau đây là đầu ra trong bảng điều khiển -
hhooww aarree yyoouu
Để tìm ký tự trùng lặp từ chuỗi, chúng ta đếm số lần xuất hiện của từng ký tự trong chuỗi. Nếu số lượng lớn hơn 1, điều đó có nghĩa là một ký tự có một mục nhập trùng lặp trong chuỗi. Trong ví dụ trên, các ký tự được tô màu xanh lục là các ký tự trùng lặp
Giải pháp đơn giản sử dụng độ phức tạp O[N^2]. Giải pháp là lặp qua chuỗi cho từng ký tự và tìm kiếm tương tự trong phần còn lại của chuỗi. Điều này sẽ cần hai vòng lặp và do đó không tối ưu.
Thực hiện
C++
// C++ program to find the first
// character that is repeated
#include
#include
using
g0
g1
g2
g3_______4_______4
g5
g6
g7_______4_______8
g7_______4_______2
g1
g7_______4_______3
g4_______4_______5
g6
g7_______4_______6
g9_______4_______3
g1
g5_______4_______3
g9_______4_______6
g6_______4_______7
g8
g6_______4_______6
b1
b2
b1
b4
b5
g6_______35_______7
g9
b7
g9_______4_______7
// C++ program to find the first
2g6_______35_______4
b5
g7_______35_______7
g7_______1611_______9
// character that is repeated
0b7
// character that is repeated
2
g2
// character that is repeated
4g6
g7_______4_______4
// character that is repeated
8// character that is repeated
9b5
g7_______4_______2
#include
3g7_______4_______7
#include
6g9_______1613_______8
#include
9b5
g7_______1614_______2
g9
#include
4g7_______1611_______9
#include
7b7
#include
9
using
0
C
using
1
using
2
using
3
#include
g2
g3_______4_______4
g5
g6
g7_______4_______8
g7_______4_______2
g1
g7_______4_______3
g4_______4_______5
g09
g9_______4_______3
g1
g5_______4_______14
g6_______4_______7
g17
b1
b2
b1
b4
b5
g6_______35_______7
g9
b7
g9_______4_______7
// C++ program to find the first
2g6_______35_______4
b5
g7_______35_______7
g7_______1611_______9
// character that is repeated
0b7
// character that is repeated
2
g2
// character that is repeated
4g6
g7_______4_______4
// character that is repeated
8// character that is repeated
9b5
g7_______4_______2
#include
3g7_______4_______7
#include
6g9_______4_______55
g56
#include
9g58
g7_______1614_______2
g9_______4_______55
g56
g64
g65
g7_______1611_______9
#include
7b7
Java
g70
g71
g72
g73
g72
g75
g76
g77
g7_______4_______79
g2
g81
g7_______4_______6
g9
g9_______4_______8
g9_______4_______2
g89
g90
g91
g9_______4_______3
g94_______4_______95_______4_______96
g9_______4_______6
g6_______4_______3
g01
g90_______4_______03
g6_______4_______6
b1____4_______7
g08
b1_______4_______6
g11____35_______2
g11_______35_______4
b5
b1
b7
g6_______35_______7
g6_______4_______7
g22_______4_______90_______4_______24
b1
b4
b5
g9
b7
g7
g9_______1611_______9
// character that is repeated
0g7_______35_______7
g7
g7_______1612_______2
g7_______4_______79
g41
g42
g43
g7_______4_______6
g9_______4_______47
// character that is repeated
9b5
g9_______4_______2
#include
3g9
g9_______4_______7
g56
g90_______4_______24
g6_______4_______60
#include
9g58
g9
#include
2g9_______4_______66
g7_______35_______7
b7
g70
Python3
g71
g72
g73
g74
g7_______4_______76
g7_______4_______78_______4_______79
g80
g90
g7_______4_______3
g84_______4_______85
g86
g56
g88
g89
g7
g9_______4_______3
g93_______4_______85
g86
g96
g97
g90
g99
g88
g89
g9
g6_______4_______7
g05_______4_______79_______4_______79
g08
b1_______4_______78____4_______79
g84
b1
b4
g6
g9_______4_______7
g18_______4_______79
g80
g90
g22
g6_______35_______4
g7_______1611_______9
g78
g28
g7
g30
g79
g79
g33
g34
g7_______4_______36
g79
// character that is repeated
9g7_______4_______40
g79
g3_______4_______36
g24
g7_______4_______7
g47_______4_______79_______4_______79
g80
g90
g22
g9_______4_______54
g56
#include
9g24
g7_______1614_______2
g34
g9_______4_______54
g56
g36
g65
g7
g67
g68
C#
g69
g71
using
g72
g76
g77
g7_______4_______79
g2
g3
g79
g80
g7_______4_______6
g9
g9_______4_______8
g9_______4_______2
g1
g9_______4_______3
g91
g9_______4_______6
g6_______4_______3
g96
g6_______4_______6
b1_______4_______7
g8
b1_______4_______6
g11____35_______2
g11_______35_______4
b5
b1
b7
g6_______35_______7
g6_______4_______7
// C++ program to find the first
2b1
b4
b5
g9
b7
g7
g9_______1611_______9
// character that is repeated
0g7_______35_______7
g7
g7_______1612_______2
g7_______4_______79
g41
g42
b34
g7_______4_______6
g9_______4_______79
b39
// character that is repeated
9b5
g9_______4_______2
#include
3g9
g9_______4_______7
#include
6g6_______35_______50
#include
9g58
g9
#include
2g9_______35_______56
g7_______35_______7
b7
g70
PHP
b61
b62
// character that is repeated
b64
g3_______35_______66
g24
g6
g7_______4_______8
g7_______35_______72
b73
g7_______4_______3
g56
b77
b78
b77
b80
g5
g56
b66
g58
b77
b86
g7_______4_______6
g9_______4_______3
g56_______35_______92
b93
b77
b95
b96
b92
b80
g5
g56
b66
g58
b92
b86
g9_______4_______6
g6_______4_______7
g56
b66
// C++ program to find the first
11b77
// C++ program to find the first
13b66
// C++ program to find the first
11b92
// C++ program to find the first
17g6_______4_______6
b1
b72
g79
b77
b5
b1
b4
b5
g6_______35_______7
g9
b7
g9_______4_______7
g56
b72
// C++ program to find the first
36g6_______35_______4
b5
g7_______35_______7
g7_______1611_______9
b72
b5
b7
// character that is repeated
2
// C++ program to find the first
48
g79
// character that is repeated
9b5
// C++ program to find the first
52 // C++ program to find the first
53// C++ program to find the first
48
g58
g7
g56_______1611_______52
// C++ program to find the first
59g7_______1611_______61
g56
#include
9g58
#include
2
g7_______1611_______61
g56
// C++ program to find the first
48// C++ program to find the first
11// C++ program to find the first
52// C++ program to find the first
72
// C++ program to find the first
73
// C++ program to find the first
74
Javascript
// C++ program to find the first
75
// C++ program to find the first
76
// character that is repeated
b64
// C++ program to find the first
79g6
g7
g7_______1611_______83
g7_______1611_______85
g7_______4_______3
// C++ program to find the first
88g7_______4_______6
g9_______4_______3
// C++ program to find the first
93g9_______4_______6
g6_______4_______7
g8
g6_______4_______6
b1
b2
b1
b4
b5
g6_______35_______7
g9
b7
g9_______4_______7
// C++ program to find the first
2g6_______35_______4
b5
g7_______35_______7
g7_______1611_______9
// character that is repeated
0b7
// character that is repeated
2
// character that is repeated
23_______1612_______9
b5
// character that is repeated
26
g7
#include
6g7_______1612_______30
#include
9g58
#include
2
g7_______1612_______35
g7
// character that is repeated
37
// character that is repeated
38
Đầu ra
g
Tối ưu hóa bằng cách đếm số lần xuất hiện
Giải pháp này được tối ưu hóa bằng cách sử dụng các kỹ thuật sau.
- Chúng tôi lặp qua chuỗi và băm các ký tự bằng mã ASCII. Lưu trữ 1 nếu tìm thấy và lưu trữ 2 nếu tìm thấy lại. Ngoài ra, lưu trữ vị trí của chữ cái được tìm thấy đầu tiên trong
- Chúng tôi chạy một vòng lặp trên mảng băm và bây giờ chúng tôi tìm thấy vị trí tối thiểu của bất kỳ ký tự nào được lặp lại
Thực hiện
C++
// character that is repeated
39
using
2
// character that is repeated
41
using
g0
g1
// character that is repeated
45
// character that is repeated
46
// character that is repeated
47
g2
// character that is repeated
49g4
g5
g6
g7_______1612_______54
g7_______4_______2
// character that is repeated
57
g7_______1612_______59
g7_______1612_______61
g7_______4_______2
// character that is repeated
64
g7_______1612_______66
g7_______4_______2
// character that is repeated
69
g7_______4_______3
g4_______4_______5
g09
g9_______1612_______76
g2
// character that is repeated
78g9_______4_______7
// character that is repeated
81g6
// character that is repeated
83g6
// character that is repeated
85g9_______35_______7
#include
2 g7
// character that is repeated
90g6
// character that is repeated
83g7_______35_______7
g7_______4_______3
// character that is repeated
97g9_______4_______7
#include
00g6_______4_______7
#include
03#include
04b1
#include
06g6_______1614_______2
g7
#include
10b1
#include
06g9
b7
g7_______35_______7
g7_______1611_______9
// character that is repeated
0b7
// character that is repeated
2
g2
// character that is repeated
4g6
g7_______4_______4
// character that is repeated
8// character that is repeated
9b5
g7_______4_______2
#include
32g7_______4_______7
#include
6g9_______1613_______8
#include
9b5
g7_______1614_______2
g9
#include
4g7_______1611_______9
#include
7b7
#include
9
using
0
C
using
1
using
2
using
3
#include
// character that is repeated
45
// character that is repeated
46
// character that is repeated
47
g2
// character that is repeated
49g4
g5
g6
g7_______1612_______54
g7_______4_______2
// character that is repeated
57
g7_______1612_______59
g7_______1612_______61
g7_______4_______2
// character that is repeated
64
g7_______1612_______66
g7_______4_______2
// character that is repeated
69
g7_______4_______3
g4_______4_______5
g09
g9_______1612_______76
g2
// character that is repeated
78g9_______4_______7
// character that is repeated
81g6
// character that is repeated
83g6
// character that is repeated
85g9_______35_______7
#include
2 g7
// character that is repeated
90g6
// character that is repeated
83g7_______35_______7
g7_______4_______3
// character that is repeated
97g9_______4_______7
#include
00g6_______4_______7
#include
03#include
04b1
#include
06g6_______1614_______2
g7
#include
10b1
#include
06g9
b7
g7_______35_______7
g7_______1611_______9
// character that is repeated
0b7
// character that is repeated
2
g2
// character that is repeated
4g6
g7_______4_______4
// character that is repeated
8// character that is repeated
9b5
g7_______4_______2
#include
32g7_______4_______7
#include
6g9_______4_______55
g56
#include
9g58
g7_______1614_______2
g9_______4_______55
g56
g64
g65
g7_______1611_______9
#include
7b7
Java
#include
61
g71
g72
g75
g72
#include
66
g41
g76
#include
69g6
g7_______4_______41
g79
g2
#include
75g7_______4_______6
g9
// character that is repeated
54g9_______4_______2
g89
g90
#include
84
g9
// character that is repeated
59g9____1612_______61
g9_______4_______2
#include
91_______1614_______92b5
g9_______4_______2
#include
96#include
97 g2
#include
99
g9
// character that is repeated
66g9_______4_______2
using
04#include
97 g2
#include
99
g9_______4_______3
g94_______4_______95_______4_______96
g9_______4_______6
g6_______1612_______76
g2
using
18g6_______4_______7
using
21g95
g24
g6_______4_______6
b1
// character that is repeated
83b1
// character that is repeated
85g6_______35_______7
g6_______1614_______2
g7
using
21_______4_______90g24
b1
// character that is repeated
83g9
b7
g9_______4_______3
g94
g95_______1615_______46
g9_______4_______6
g6_______4_______7
using
51using
52g24
g6_______4_______6
b1
g7
using
58g90
g24
#include
04g11
#include
06b1
#include
2 g7
#include
10g11
#include
06g6_______35_______7
g9
b7
g9_______1611_______9
// character that is repeated
0g7_______35_______7
// character that is repeated
2
g7_______4_______41
g79
g42
using
84g7_______4_______6
g9_______4_______47
// character that is repeated
9b5
g9_______4_______2
#include
32g9_______4_______7
g56
g90_______4_______24
g6_______4_______60
#include
9g58
g9
#include
2g6_______4_______006
g7_______35_______7
b7
g010
Python3
g011
g72
g013
g014
g015_______4_______79
#include
92
g73
g019
g7
g7_______4_______022
g7_______4_______78_______4_______79
g80
g90
g7_______4_______029
g7_______4_______031
g7_______4_______033
g79
// C++ program to find the first
11g95
g3
g84
g85
g86
g041
g7_______4_______043
g7_______4_______40
g79
// C++ program to find the first
11g95
g3
g84
g85
g86
g041
g7_______4_______3
g84_______4_______85
g86
g56
g88
g89
g9_______4_______063
g79
g065
g066
g9_______4_______7
g56_______4_______033
g071
g79
g79
g95
g22
g6_______4_______033
g071
g97
g79
g90
g6_______4_______083____4_______79
g84
g9_______4_______087
g56
g033
g071
g79
g79
g90
g22
g6_______4_______033
g071
g97
g79
g90
g7_______4_______3
g84_______4_______85
g86
g106
g9_______4_______7
g56_______4_______033
g111
g79
g79
using
52g22
g6_______4_______7
g118
g79
g79
g80
g90
g22
g124
b1
g78
g79
g128
g6_______4_______087
g131
b1
g78
g79
g128
g7_______1611_______9
g78
g28
g7
g30
g79
g79
g144
g34
g7_______4_______36
g79
// character that is repeated
9g7_______4_______40
g79
// character that is repeated
49g36
g58
g7_______4_______7
g47_______4_______79_______4_______79
g80
g90
g22
g9_______4_______54
g56
#include
9g24
g7_______1614_______2
g34
g9_______4_______54
g56
g36
g65
g9
g178
g179
C#
g180
g71
using
g72
g41
g76
#include
69g6
g7_______4_______41
g79
g2
// character that is repeated
49g79
g80
g7_______4_______6
g9
// character that is repeated
54g9_______4_______2
// character that is repeated
57g202
g9
// character that is repeated
59g9____1612_______61
g9_______4_______2
g209
g9_______4_______2
g212
#include
97 g2
#include
99g202
g9
// character that is repeated
66g9_______4_______2
g221
#include
97 g2
#include
99g202
g9_______4_______3
g91
g9_______4_______6
g6_______1612_______76
g2
// character that is repeated
78g6_______4_______7
g237
g6_______4_______6
b1
// character that is repeated
83b1
// character that is repeated
85g6_______35_______7
g6_______1614_______2
g7
// character that is repeated
90b1
// character that is repeated
83g9
b7
g202
g9_______4_______3
g257
g9_______4_______6
g6_______4_______7
g262
g6_______4_______6
b1
g7
#include
03#include
04g11
#include
06b1
#include
2 g7
#include
10g11
#include
06g6_______35_______7
g9
b7
g202
g9_______1611_______9
// character that is repeated
0g7_______35_______7
g202
g7_______1612_______2
g7_______4_______41
g79
g42
g294
g7_______4_______6
g9_______4_______79
b39
// character that is repeated
9b5
g9_______4_______2
#include
32g9_______4_______7
#include
6g6_______4_______309
#include
9g58
g9
#include
2g6_______4_______315
g7_______35_______7
b7
g202
g320
Javascript
// C++ program to find the first
75
g7_______4_______323
g7
g7_______35_______64
g327
g7_______4_______6
g9
// character that is repeated
54g9_______4_______333
g334
g9
// character that is repeated
59g9____1612_______61
g9_______4_______340
g9_______4_______342
#include
97 g344
g9_______4_______346
g334
g9
// character that is repeated
66g9_______4_______351
#include
97 g344
g9_______4_______355
g334
g9_______4_______3
// C++ program to find the first
88g9_______4_______6
g6_______4_______363
g6_______4_______7
g237
g6_______4_______6
b1
// character that is repeated
83b1
// character that is repeated
85g6_______35_______7
g6_______1614_______2
g7
// character that is repeated
90b1
// character that is repeated
83g9
b7
g334
g9_______4_______3
g257
g9_______4_______6
g6_______4_______7
g262
g6_______4_______6
b1
g7
#include
03#include
04g11
#include
06b1
#include
2 g7
#include
10g11
#include
06g6_______35_______7
g9
b7
g334
g9_______1611_______9
// character that is repeated
0g7_______35_______7
g7
g7_______1612_______23____1612_______9
b5
g7_______4_______422
g7_______4_______7
#include
6g426____1612_______30
#include
9g58
g7_______1614_______2
g426
// character that is repeated
35
g434
// character that is repeated
38
Đầu ra
g
Thời gian phức tạp. TRÊN]
không gian phụ trợ. Ô[1]
Phương pháp #3. Sử dụng các hàm Python tích hợp
Tiếp cận
- Tính tất cả tần số của tất cả các ký tự bằng hàm Counter[]
- Duyệt qua chuỗi và kiểm tra xem có phần tử nào có tần số lớn hơn 1 không
- In ký tự và ngắt vòng lặp
Dưới đây là việc thực hiện
Python3
g436
g437
g438
g72
g440
g441
g442
g73
g444
g334
g7_______4_______447
g7_______4_______449
g7_______4_______451______4_______79
g453
g7
g7_______4_______456
g7_______4_______3
g84_______4_______85
g461
g9_______4_______7
g464
g90
g22
g6_______4_______54
g469
g6_______35_______4
g28
g79_______4_______79
// character that is repeated
9
g476
g477
g478
Đầu ra
g
Thời gian phức tạp. TRÊN]
Không gian phụ trợ. TRÊN]
Phương pháp #4. Giải chỉ bằng cách duyệt một chuỗi đã cho
thuật toán
- Đi qua chuỗi từ trái sang phải
- Nếu ký tự hiện tại không có trong bản đồ băm, thì hãy đẩy ký tự này cùng với Chỉ mục của nó
- Nếu ký tự hiện tại đã có trong bản đồ băm, thì hãy lấy chỉ mục của ký tự hiện tại [từ bản đồ băm] và so sánh nó với chỉ mục của ký tự lặp lại được tìm thấy trước đó
- Nếu chỉ mục hiện tại nhỏ hơn, hãy cập nhật chỉ mục
C++
g479
g480
g481
using
g0
g1
g485
g4
g487
g7_______4_______6
g9_______4_______491
g4_______4_______99
g2
g495
g9_______4_______4
g498
g499
b5
g9_______4_______2
g503
g9
g9_______4_______506
g9_______4_______3_______4_______56
g2
g511
g9_______4_______6
g6_______4_______4
g516
g6
g6_______4_______7
g520
g6
#include
2g6_______4_______6
b1_______4_______7
g527
b1_______4_______6
g11_______4_______531
g11_______4_______533
b1
b7
g6_______35_______7
g6
g9
b7
g9
g9
g9_______1611_______9
g545
g7_______35_______7
g548
g2
g550
g7_______4_______552
g7_______4_______554____4_______555
b5
g7_______4_______558
g7
g7_______1611_______9
#include
7b7
#include
9
g565
Java
g566
g567
g72
g75
g41
g76
g77
g334
g41
g79
g2
g577
g578
b5
g334____4_______485
g334
g41
g79
g4
g586
g334____4_______6
g7_______4_______590
g426
g79
#include
97 g594
g7_______4_______4
g597
g499
b5
g7_______4_______2
g602
g7_______4_______506
g7_______4_______3
g56
g2
g609
g95
g611
g426
g4
g614
g426
g7
g617
g9_______4_______619
g426
b7
g426
#include
2 g6
g9_______4_______7
g627
g628
g629
g628
g631
g9
b7
g426
b7
g7_______35_______7
g7_______1611_______9
g545
g334
b7
g334____4_______548
g334
g41
g79
g42
using
84g334____4_______6
g7_______4_______552
g7_______4_______655
g555
b5
g7_______4_______659
g7_______4_______661
g662
g58
g334
b7
b7
g667
Python3
g668
g669
g670______4_______79
g578
g673
g73
g675
g7_______4_______677
g79
g679
g680
g7_______4_______682____4_______79
g499
g7_______4_______686
g79
g670
g7
g7_______4_______691
g7_______4_______84_______4_______79
g95
g7_______4_______697
g698
g88
g89
g9_______4_______78____4_______79
g704
g9_______4_______7
g56_______4_______708
g118
g85
g677
g712
g6_______4_______677
g715
g79
g84
g9_______1614_______2
g34
g6_______4_______7
g56
g677
g725
b1
g686
g79
g677
g730
b1_______4_______682____4_______79
g78
g9_______4_______84
g97
g79
g90
g7_______1611_______9
g682
g7
g30
g79
g79
g33
g34
g334
g7_______4_______751
g7_______4_______753____4_______79
g555
g7_______4_______54
g758
g79
g760
g7_______4_______54
g56
g662
g765
g79
g760
g768
C#
g769
using
g72
using
g773
g41
g79
g76
g77
g334
g79
g2
g781
g334____4_______485
g334
g41
g79
g4
g788
g79
g80
g334____4_______6
g7_______4_______794
g4_______4_______99
g2
g798
g426
g79
#include
97 g794
g4
g99
g2
g806
g7_______4_______4
g597
g499
b5
g7_______4_______2
g602
g7_______4_______506
g7_______4_______3
g56
g2
g821
g426
g4
g824
g426____4_______7
g827
g9_______4_______829
g426
b7
g426
#include
2 g6
g9_______4_______7
g837
g628
g839
g628
g631
g9
b7
g426
b7
g7_______35_______7
g7_______1611_______9
g545
g334
b7
g334____4_______548
g334
g41
g79
g42
g294
g334____4_______6
g7_______4_______552
g7_______4_______79
g866
g555
b5
g7_______4_______870
g7_______4_______309
g662
g58
g334
b7
b7
g667
Javascript
// C++ program to find the first
75
g880
g881
g485
b64
g884
g6
g7_______4_______887
#include
97 g889
g7_______4_______891____4_______499
b5
g7_______4_______895
g9
g7_______4_______506
g7_______4_______3
g901
g7_______4_______6
g9_______4_______905
g6
g9_______4_______7
g909
g9
#include
2g9_______4_______6
g6_______4_______7
g916
g6_______4_______6
b1_______4_______629
b1_______4_______631
g6_______35_______7
g9_______4_______926
g7_______35_______7
g7_______1611_______9
g545
b7
// character that is repeated
2
g552
g935______4_______555
b5
g938
g7
g940
// character that is repeated
38
Đầu ra
b
Độ phức tạp về thời gian. TRÊN]
Không gian phụ trợ. O[1], vì sẽ có một số lượng ký tự không đổi trong chuỗi
Giải pháp tối ưu hơn Ký tự lặp lại có lần xuất hiện đầu tiên ở ngoài cùng bên trái
Bài viết này được đóng góp bởi Suprotik Dey. Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo bằng cách sử dụng write. chuyên viên máy tính. org hoặc gửi bài viết của bạn tới review-team@geeksforgeeks. tổ chức. Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp các Geeks khác