Chương trình lấy một chuỗi và tạo một từ điển với khóa là ký tự đầu tiên và giá trị là các từ bắt đầu bằng ký tự đó
Giải pháp vấn đề
1. Nhập một chuỗi và lưu trữ nó trong một biến.
2. Khởi tạo biến đếm về 0.
3. Tạo một tập hợp chứa các nguyên âm.
4. Sử dụng vòng lặp for để duyệt qua các chữ cái trong chuỗi.
5. Sử dụng câu lệnh if, kiểm tra xem chữ cái trong chuỗi có bằng một nguyên âm không.
6. Nếu bằng nhau thì tăng số lượng nguyên âm.
7. In số cuối cùng của các nguyên âm.
8. Lối ra.
Chương trình/Mã nguồn
Đây là mã nguồn của Chương trình Python để tạo từ điển với khóa là ký tự đầu tiên và giá trị là các từ bắt đầu bằng ký tự đó. Đầu ra chương trình cũng được hiển thị bên dưới
Chương trình Python để đếm số nguyên âm trong chuỗi;
Cách đếm số nguyên âm trong một chuỗi bằng Python
Xem chương trình python sau để đếm số nguyên âm trong một chuỗi
- 1. Cách đếm số nguyên âm trong một chuỗi trong python bằng vòng lặp for
- 2. Chương trình Python đếm số nguyên âm trong chuỗi bằng vòng lặp For và hàm Lower[]
- 3. Chương trình Đếm Tổng số Nguyên âm trong Chuỗi Sử dụng Giá trị ASCII
1. Cách đếm số nguyên âm trong một chuỗi trong python bằng vòng lặp for
Sử dụng các bước sau và viết chương trình python để đếm số nguyên âm trong một chuỗi bằng giá trị ASCII
Chuỗi là một yếu tố thiết yếu trong lập trình. Có thể là đánh giá trực tuyến, vòng kỹ thuật hoặc phỏng vấn, bạn sẽ thường thấy các vấn đề liên quan đến chuỗi trong hành trình vị trí của mình. [Tôi không dám nói luôn, nhưng có lẽ trong mỗi vòng. ]
Nếu bạn đang nhắm đến một công ty MAANG hoặc bất kỳ công ty dựa trên dịch vụ nào, bạn phải thành thạo các chuỗi vì đây luôn là một phần không thể thiếu trong các thử thách tuyển dụng. Ngoài việc tuyển dụng, đây cũng là những viên đá khởi đầu tốt cho lập trình cạnh tranh
Vì chúng ta đang nói về chủ đề thử thách tuyển dụng, nên một trong những câu hỏi phổ biến nhất mà bạn sẽ gặp phải là cách đếm số nguyên âm trong một chuỗi bằng Python. Hôm nay, chúng ta sẽ thảo luận về vấn đề này, các biến thể của nó và các cách tiếp cận khác nhau để giải quyết vấn đề này. Vậy hãy bắt đầu
Làm thế nào để đếm số nguyên âm trong một chuỗi?
Đây là tuyên bố vấn đề. "Bạn được cung cấp một chuỗi, được tạo thành từ bảng chữ cái, ký tự đặc biệt hoặc số. Bạn cần đếm số nguyên âm trong chuỗi đã cho. "
Âm thanh như một nhiệm vụ dễ dàng, phải không?
Có 5 nguyên âm. ['a', 'e', 'i', 'o', 'u']
Vì các ngôn ngữ lập trình thường phân biệt chữ hoa chữ thường, do đó để xác định số lượng nguyên âm trong một chuỗi, bạn cần xem xét cả ký tự chữ hoa và chữ thường. Do đó, bạn sẽ có 10 ký tự trong danh sách nguyên âm là
['a' , 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
Có nhiều biến thể cho tuyên bố vấn đề nhất định. Hãy bắt đầu với điều dễ dàng và xây dựng theo cách của chúng ta đến mức độ phức tạp của nó
Hãy xem một ví dụ
Chúng tôi được cung cấp một chuỗi. "Đếm số nguyên âm trong Chuỗi trong Python"
Các nguyên âm bao gồm [ 'a', 'e', 'i', 'o', 'u' ] [hiện tại, chúng ta chỉ xem xét các bảng chữ cái viết thường]
Tham khảo hình ảnh bên dưới để hiểu nhanh vấn đề
đầu ra. 12
Bây giờ bạn đã có hiểu biết cơ bản về vấn đề, hãy chuyển sang cách tiếp cận đầu tiên của chúng tôi
01] Phương pháp tiếp cận bạo lực
Đây sẽ là cách tiếp cận cơ bản nhất và đầu tiên của bạn đối với một vấn đề. Hãy nhớ rằng khi tham gia một cuộc phỏng vấn, sẽ rất hữu ích khi bắt đầu với cách tiếp cận thô bạo. Vì vậy, ngay cả khi bạn không đạt được câu trả lời tối ưu, bạn vẫn có thể thể hiện khả năng xây dựng logic và cách nhìn rõ ràng của mình về vấn đề
Ngoài ra, điều này giúp bạn làm rõ ý tưởng của mình tại cuộc phỏng vấn và giúp bạn giải thích giải pháp của mình tốt hơn cho người phỏng vấn
Vì vậy, hãy chuyển sang Phương pháp Brute Force của chúng ta để đếm số lượng nguyên âm trong một chuỗi,
thuật toán
- Lấy một chuỗi làm đầu vào của người dùng
- Khởi tạo biến đếm bằng 0
- Lặp lại từng ký tự của chuỗi
- Kiểm tra "NẾU" ký tự là một nguyên âm
- Nếu ký tự là nguyên âm, hãy tăng giá trị của biến đếm lên 1
- Khác tiếp tục lặp qua chuỗi
- Phá vỡ vòng lặp khi chuỗi kết thúc
Dưới đây là biểu đồ mô tả luồng của phương pháp trên
Vì vòng lặp chỉ chạy hết chiều dài của xâu nên vòng lặp chạy cụ thể n lần. Do đó, Độ phức tạp về thời gian cho cách tiếp cận vũ phu là O[n]
Bây giờ bạn đã hiểu giải pháp vũ phu, đã đến lúc đưa nó vào hành động. Hãy bắt đầu với việc mã hóa giải pháp vũ phu của chúng tôi để đếm các nguyên âm trong một chuỗi bằng Python
# Program: Count number of vowels in a String in Python example = "Count number of vowels in a String in Python" # initializing count variable count = 0 # declaring a variable for index i = 0 # iterate over the given string [example] # len[example] -> gives the length of the string in Python for i in range[len[example]]: if [ [example[i] == "a"] or [example[i] == "e"] or [example[i] == "i"] or [example[i] == "o"] or [example[i] == "u"] ]: count += 1 print["Number of vowels in the given string is: ", count]
Hàm range[] được sử dụng ở đây để tăng giá trị của i lên 1 và để kiểm tra xem giá trị của i có nằm trong khoảng từ 0 đến độ dài của chuỗi không
đầu ra
Number of vowels in the given string is: 12
Phương pháp trên là cách tiếp cận cơ bản nhất cho vấn đề này. Bây giờ, chúng ta hãy cùng nhau tối ưu hóa mã này
Lưu ý rằng chúng tôi đã sử dụng toán tử 'hoặc' để so sánh ký tự với nguyên âm. Bạn có thể tránh nhiều toán tử "hoặc" này bằng cách sử dụng toán tử "in" tại đây. Hãy cùng kiểm tra nào
Tối ưu hóa bằng toán tử 'in'
# Program: Count number of vowels in a String in Python example = "Count number of vowels in a String in Python" # initializing count variable count = 0 # creating a list of vowels vowels = ["a", "e", "i", "o", "u"] # iterate over the given string [example] # len[example] -> gives the length of the string in Python # Note that python can also declare the variable at the time of calling for i in range[len[example]]: if example[i] in vowels: count += 1 print["Number of vowels in the given string is: ", count]
đầu ra
Number of vowels in the given string is: 12
Trong Python, toán tử 'in' xác định xem một giá trị đã cho có xuất hiện trong chuỗi đã cho hay không [như chuỗi, mảng, danh sách hoặc bộ]. Trong đoạn mã trên, chúng tôi đã tạo một danh sách lưu trữ các nguyên âm. Bằng cách này, bạn cũng có thể thêm các ký tự viết hoa của Nguyên âm vào danh sách
Do đó, tuyên bố ->
if example[i] in vowels:
kiểm tra xem ký tự [ví dụ [i]] có trong danh sách [nguyên âm]. Điều này dẫn đến 'Đúng' nếu đúng, đó là trường hợp của nguyên âm, nếu không, nó sẽ xuất ra 'Sai'
Thay vì danh sách, bạn có thể sử dụng bất kỳ trình tự nào ở đây, như - "aeiouAEIOU" hoặc ["aeiou"]
Lưu ý rằng trong cả hai cách tiếp cận ở trên, chúng tôi đã sử dụng chỉ mục của chuỗi để lặp lại từng ký tự. Hãy thử gọi một vòng lặp cho từng mục đích
02] Đếm số nguyên âm trong chuỗi bằng vòng lặp for [như for-each]
Vòng lặp for-each là một câu lệnh luồng điều khiển lặp qua các phần tử trong một chuỗi hoặc tập hợp. Không giống như các vòng lặp khác, nó lặp lại trên tất cả các phần tử thay vì giữ một bộ đếm, biến vòng lặp hoặc kiểm tra một điều kiện sau mỗi lần lặp lại vòng lặp
Trong Python, bạn có thể sử dụng vòng lặp for dưới dạng vòng lặp for-each. Hãy xem làm thế nào
# Program: Count number of vowels in a String in Python # example string example = "Favtutor article" vowels = ["a", "e", "i", "o", "u"] count = 0 # using for-each loop, character is reference to a letter in the string for character in example: if character in vowels: count += 1 print["Number of vowels in the given string is: ", count]
đầu ra
Number of vowels in the given string is: 6
Trong đoạn mã trên, biến 'ký tự' đề cập đến từng ký tự trong chuỗi 'ví dụ'. Vòng lặp chạy cho từng ký tự trong chuỗi, do đó, nó không thực sự yêu cầu biến đếm để lặp qua chuỗi
03] Đếm số nguyên âm trong một chuỗi với khả năng hiểu danh sách
Bạn có thể đếm số nguyên âm trong Chuỗi bằng một dòng mã không?
Đáng ngạc nhiên, bạn có thể
Python cung cấp Khả năng hiểu danh sách, cung cấp cú pháp ngắn hơn để tạo danh sách mới dựa trên các giá trị của danh sách hiện có. Khả năng hiểu danh sách Python được tạo thành từ các dấu ngoặc chứa biểu thức, được thực thi cho từng phần tử, cũng như vòng lặp for, được sử dụng để lặp qua các phần tử của danh sách
Hãy cùng kiểm tra nào
# Program: Count number of vowels in a String in Python example = "Favtutor article" # list comprehension count = len[[char for char in example if char in "aeiouAEIOU"]] print["Number of vowels: ", count ]
đầu ra
________số 8
Lưu ý rằng chúng tôi đã rút ngắn toàn bộ vòng lặp thành một dòng
Khó hiểu?
Hàm len[] được sử dụng để trả về độ dài của danh sách mới được tạo. Đây là hàm len[] thực sự đưa ra số lượng nguyên âm trong chuỗi
Vòng lặp lặp lại cho từng ký tự trong chuỗi và kiểm tra xem ký tự 'nếu' có phải là nguyên âm hay không. Nếu có, thì nó sẽ thêm ký tự đó vào danh sách. Do đó, cuối cùng, hàm len[] trả về độ dài của danh sách bao gồm tất cả các nguyên âm trong chuỗi đã cho
Khó hiểu?
Chúng ta hãy xem qua hậu trường của việc hiểu danh sách này
Chuỗi = "Bài viết Favtutor"
Khả năng hiểu danh sách của chúng tôi = len[[char cho char trong ví dụ nếu char trong "aeiouAEIOU"]]
Các nguyên âm trong chuỗi được thêm vào danh sách mới. Điều này xảy ra khi chúng ta lặp qua chuỗi theo từng ký tự
Nhìn vào hình ảnh dưới đây để hiểu rõ hơn-
04] Sử dụng biểu thức ReGex
Python cung cấp 're module' để dễ dàng làm việc với các biểu thức regex. Mô-đun re trong Python cung cấp hàm findall[], giúp tìm kết quả khớp cho một mẫu nhất định trong chuỗi đã cho
Chúng ta có thể sử dụng hàm findall[] để lấy số nguyên âm trong chuỗi. Chúng ta hãy xem mã
# Program: Count number of each vowel in a string in Python import re string = "Article: Count number of each vowel in a string in Python" # using findall[] function to match pattern # Meta character '|' is used to depict 'either-or' sequence vowels = re.findall["a|e|i|o|u", string] print[vowels] # count of number of vowels in the string print[len[vowels]]
đầu ra
Number of vowels in the given string is: 120
05] Sử dụng phương thức 'count[]'
Python cung cấp một phương thức count[] để đếm số phần tử được chỉ định trong bất kỳ lần lặp nào [như chuỗi, danh sách]
Cú pháp cơ bản của nó là. biến = iterable_name. đếm ['giá trị']
Điều này trả về số lượng của phần tử được chỉ định trong iterable. Bạn có thể sử dụng phương thức đếm với khả năng hiểu danh sách để đếm số lần xuất hiện của từng nguyên âm trong chuỗi
Hãy nhìn vào đoạn mã dưới đây
Number of vowels in the given string is: 121
đầu ra
Number of vowels in the given string is: 122
Lưu ý rằng các nguyên âm [danh sách] giữ số lượng của mỗi nguyên âm trong chuỗi theo trình tự đã cho [aeiou]
Sự kết luận
Trong bài viết trên, bạn đã học cách đếm số nguyên âm trong một chuỗi trong Python. Lưu ý rằng vì tôi chỉ sử dụng các nguyên âm viết thường ['aeiou'] trong các ví dụ trên, đoạn mã trên sẽ không xem xét các bảng chữ cái viết hoa ['AEIOU'] trong khi đếm các nguyên âm
Bạn sẽ cần đề cập riêng đến các nguyên âm viết hoa ['AEIOU'] để chúng cũng được tính. Bạn có thể sử dụng hàm chữ thường [] hoặc chữ hoa [] trên chuỗi đã cho để chuyển đổi các chữ cái thành cùng một trường hợp, để có được kết quả hiệu quả hơn
Ngoài các phương pháp đã đề cập ở trên, bạn sẽ tìm thấy các phương pháp khác sẽ thực hiện nhiệm vụ cho bạn. Bạn sẽ phải tối ưu hóa mã và sử dụng phương pháp với thời gian phức tạp tối thiểu để có kết quả tốt hơn