Wap để đếm số nguyên âm trong một chuỗi trong python

Đ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ỗi

Chú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 đếm

Tiế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 đúng

Mã 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

  1. Lấy một chuỗi làm đầu vào của người dùng
  2. Khởi tạo biến đếm bằng 0
  3. Lặp lại từng ký tự của chuỗi
  4. Kiểm tra "NẾU" ký tự là một nguyên âm
  5. Nếu ký tự là nguyên âm, hãy tăng giá trị của biến đếm lên 1
  6. Khác tiếp tục lặp qua chuỗi
  7. 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:  12
0

 

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:  12
1

 

đầu ra

Number of vowels in the given string is:  12
2

 

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

Chủ Đề