Đoạn mã sau đây cung cấp một bản tóm tắt ngắn gọn về nhiều phương pháp có thể được sử dụng để giải bài toán Chương trình Python Đếm số nguyên âm trong một chuỗi
whatever=input["Enter something\n"] vowels = ['a', 'e', 'i', 'o', 'u'] vowelp = [[i for i in whatever if i in vowels]] vowelcount = len[[i for i in whatever if i in vowels]] print ["there are", vowelcount, "vowels [y is not counted]"] print ["the vowels are:", vowelp]
Chúng tôi đã chỉ ra cách giải quyết vấn đề Chương trình Python đếm số nguyên âm trong một chuỗi bằng cách xem xét một số trường hợp khác nhau
Làm thế nào để bạn đếm các nguyên âm từ một chuỗi trong Python?
Bước 1. Lấy một chuỗi từ người dùng và lưu trữ nó trong một biến. Bước 2. Khởi tạo biến đếm về 0. Bước 3. Sử dụng vòng lặp for để duyệt qua các ký tự trong chuỗi. Bước 4. Sử dụng câu lệnh if để kiểm tra xem ký tự có phải là nguyên âm hay không và tăng biến đếm nếu đó là nguyên âm
Làm thế nào để bạn đếm số nguyên âm trong một chuỗi?
Để đếm số lượng nguyên âm và phụ âm trong một chuỗi, chúng tôi lặp lại bằng cách sử dụng vòng lặp for qua từng ký tự của chuỗi và kiểm tra xem nó có khớp với nguyên âm không. Nếu có thì chúng ta tăng bộ đếm nguyên âm nếu không thì tăng bộ đếm phụ âm
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
Ở đây, chúng tôi đã lấy một chuỗi được lưu trữ trong ip_str. Sử dụng phương pháp
# Using dictionary and list comprehension
ip_str = 'Hello, have you tried our tutorial section yet?'
# make it suitable for caseless comparisions
ip_str = ip_str.casefold[]
# count the vowels
count = {x:sum[[1 for char in ip_str if char == x]] for x in 'aeiou'}
print[count]
5, chúng tôi làm cho nó phù hợp để so sánh trường hợp. Về cơ bản, phương thức này trả về một phiên bản chữ thường của chuỗiChúng tôi sử dụng phương pháp từ điển
# Using dictionary and list comprehension
ip_str = 'Hello, have you tried our tutorial section yet?'
# make it suitable for caseless comparisions
ip_str = ip_str.casefold[]
# count the vowels
count = {x:sum[[1 for char in ip_str if char == x]] for x in 'aeiou'}
print[count]
6 để xây dựng một từ điển mới với mỗi nguyên âm là khóa của nó và tất cả các giá trị bằng 0. Đây là khởi tạo của đếmTiếp theo, chúng tôi lặp lại chuỗi đầu vào bằng vòng lặp for
Trong mỗi lần lặp lại, chúng tôi kiểm tra xem ký tự có trong các khóa từ điển hay không [
# Using dictionary and list comprehension
ip_str = 'Hello, have you tried our tutorial section yet?'
# make it suitable for caseless comparisions
ip_str = ip_str.casefold[]
# count the vowels
count = {x:sum[[1 for char in ip_str if char == x]] for x in 'aeiou'}
print[count]
7 nếu đó là nguyên âm] và tăng giá trị lên 1 nếu đúngMã nguồn. Sử dụng danh sách và hiểu từ điển
# Using dictionary and list comprehension
ip_str = 'Hello, have you tried our tutorial section yet?'
# make it suitable for caseless comparisions
ip_str = ip_str.casefold[]
# count the vowels
count = {x:sum[[1 for char in ip_str if char == x]] for x in 'aeiou'}
print[count]
Đầu ra của chương trình này giống như trên
Ở đây, chúng tôi đã lồng một cách hiểu danh sách bên trong cách hiểu từ điển để đếm các nguyên âm trong một dòng
Tính năng hiểu từ điển chạy cho tất cả các ký tự nguyên âm và tính năng hiểu danh sách bên trong tính năng hiểu từ điển sẽ kiểm tra xem có ký tự nào trong chuỗi khớp với nguyên âm cụ thể đó không
Cuối cùng, một danh sách có 1 giây được tạo cho số lượng của mỗi ký tự nguyên âm. Phương pháp
# Using dictionary and list comprehension
ip_str = 'Hello, have you tried our tutorial section yet?'
# make it suitable for caseless comparisions
ip_str = ip_str.casefold[]
# count the vowels
count = {x:sum[[1 for char in ip_str if char == x]] for x in 'aeiou'}
print[count]
8 được sử dụng để tính tổng các phần tử cho mỗi danh sách 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
________số 8
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
# Using dictionary and list comprehension
ip_str = 'Hello, have you tried our tutorial section yet?'
# make it suitable for caseless comparisions
ip_str = ip_str.casefold[]
# count the vowels
count = {x:sum[[1 for char in ip_str if char == x]] for x in 'aeiou'}
print[count]
0
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ã
# Using dictionary and list comprehension
ip_str = 'Hello, have you tried our tutorial section yet?'
# make it suitable for caseless comparisions
ip_str = ip_str.casefold[]
# count the vowels
count = {x:sum[[1 for char in ip_str if char == x]] for x in 'aeiou'}
print[count]
1
đầ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