Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk mencari berat rentetan

Program Python untuk mencari berat rentetan

WBOY
WBOYke hadapan
2023-09-04 20:09:101021semak imbas

Program Python untuk mencari berat rentetan

Dalam artikel ini, tugasan yang diberikan ialah mencari jumlah berat seutas tali. Untuk mengira berat tali, kami menukar rentetan yang diberikan kepada bentuk yang lebih rendah. Mengambil kira berat aksara, kita ambil a=1, b=,2 dan seterusnya sehingga z=26. Dalam artikel Python ini, kaedah untuk mencari berat rentetan yang diberikan dibentangkan menggunakan dua contoh berbeza. Dalam contoh pertama, aksara yang diberikan dalam rentetan ialah fetch, hed dan kemudian pemberat masing-masing ditambah pada pemberat yang dikemas kini. Dalam Contoh 2, anda mula-mula mengira kekerapan aksara yang diberikan muncul dalam rentetan, kemudian darabkan kekerapan itu dengan berat aksara yang sepadan, dan kemudian tambah semua berat komponen ini bersama-sama untuk mendapatkan hasil akhir.

Contoh 1: Cari pemberat rentetan dan tambahkan pemberat aksara menggunakan lelaran.

Algoritma

Langkah 1 - Mula-mula buat atoz = 'abcdefghijklmnopqrstuvwxyz'.

Langkah 2 - Kami akan menggunakan fungsi atoz.index() untuk mendapatkan nombor berat, contohnya di sini ruang ' ' akan mempunyai nilai 0, b akan mempunyai nilai 2 dan seterusnya.

Langkah 3 - Sekarang nyatakan rentetan yang diberikan yang mana berat rentetan itu hendak dikira.

Langkah 4 - Ulangi rentetan yang diberikan untuk mendapatkan aksara satu demi satu.

Langkah 5 - Cari nilai kedudukan (nilai berat) watak dalam atoz.

Langkah 6 - Kemas kini berat tali dengan menambah nilai berat watak.

Langkah 7 - Akhir sekali, cetak hasil keseluruhan.

Contoh

givenstr = 'this is a sample string'
def calculateWeight(teststr):
   teststr = teststr.lower()
   atoz = ' abcdefghijklmnopqrstuvwxyz'
   weight = 0
   for item in range(len(teststr)):
      elem = teststr[item]
      currweight = atoz.index(elem)
      weight += currweight
      print("This albhabet:",elem, ", alphabet weight:", currweight, ", Updated String Weight ", weight)
   return weight
finalresult= calculateWeight(givenstr)
print("Final String Weight: ",finalresult) 

Output

This albhabet: t , alphabet weight: 20 , Updated String Weight  20
This albhabet: h , alphabet weight: 8 , Updated String Weight  28
This albhabet: i , alphabet weight: 9 , Updated String Weight  37
This albhabet: s , alphabet weight: 19 , Updated String Weight  56
This albhabet:   , alphabet weight: 0 , Updated String Weight  56
This albhabet: i , alphabet weight: 9 , Updated String Weight  65
This albhabet: s , alphabet weight: 19 , Updated String Weight  84
This albhabet:   , alphabet weight: 0 , Updated String Weight  84
This albhabet: a , alphabet weight: 1 , Updated String Weight  85
This albhabet:   , alphabet weight: 0 , Updated String Weight  85
This albhabet: s , alphabet weight: 19 , Updated String Weight  104
This albhabet: a , alphabet weight: 1 , Updated String Weight  105
This albhabet: m , alphabet weight: 13 , Updated String Weight  118
This albhabet: p , alphabet weight: 16 , Updated String Weight  134
This albhabet: l , alphabet weight: 12 , Updated String Weight  146
This albhabet: e , alphabet weight: 5 , Updated String Weight  151
This albhabet:   , alphabet weight: 0 , Updated String Weight  151
This albhabet: s , alphabet weight: 19 , Updated String Weight  170
This albhabet: t , alphabet weight: 20 , Updated String Weight  190
This albhabet: r , alphabet weight: 18 , Updated String Weight  208
This albhabet: i , alphabet weight: 9 , Updated String Weight  217
This albhabet: n , alphabet weight: 14 , Updated String Weight  231
This albhabet: g , alphabet weight: 7 , Updated String Weight  238
Final String Weight:  238

Contoh 2: Cari berat tali menggunakan berat aksara dan formula kejadian

Algoritma

Langkah 1 - Mula-mula buat kamus bernama charweight= {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, "f" :6, "g":7,…………. "z" maksimum: 26}

Langkah 2 - Sekarang nyatakan rentetan yang diberikan yang mana berat rentetan itu hendak dikira.

Langkah 3 - Cari kekerapan kejadian watak dalam rentetan yang diberikan.

Langkah 4 - Ulangi kamus berat aksara dan cari nilai berat bagi setiap aksara dalam rentetan yang diberikan.

Langkah 5 - Darab kekerapan watak dengan beratnya.

Langkah 6 - Kemas kini berat rentetan dengan menambah nilai yang dikira ini.

Langkah 7 - Ulangi ini dan cetak jumlah hasil pada penghujung.

Penjelasan istilah yang digunakan dalam formula yang diberikan

TotalWeight ialah jumlah berat rentetan ujian yang diberikan.

N1, n2 mewakili aksara yang muncul dalam rentetan ujian yang diberikan

Occr(n1) bermaksud n1 berlaku dalam rentetan ujian yang diberikan.

Weight(n1) mewakili berat watak watak n1 yang diberikan dalam kamus charweight.

Di sini '*' digunakan sebagai operator pendaraban untuk nombor

Di sini '+' digunakan sebagai operator penambahan untuk nombor

Formula digunakan

TotalWeight= (Occr(n1) * weight(n1)) + (Occr(n2) * weight(n2)) .....dan seterusnya

Contoh

givenstr = 'this is a sample string'
charweight= {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 10, 'k': 11, 'l': 12, 'm': 13, 'n': 14, 'o': 15, 'p': 16, 'q': 17, 'r': 18, 's': 19, 't': 20, 'u': 21, 'v': 22, 'w': 23, 'x': 24, 'y': 25, 'z': 26}
WeightSum=0
occurFreq = {}
for i in givenstr:
   if i in occurFreq:
      occurFreq[i] += 1
   else:
      occurFreq[i] = 1

print("Char Weights: " , charweight)
print("Occurance: ", occurFreq)

for alphabetChar, alphabetCharCount in occurFreq.items():
   print(alphabetChar, ":", alphabetCharCount)
   for key in charweight.keys():
      if key.find(alphabetChar) > -1:
          #print(charweight[key]*alphabetCharCount)
          WeightSum=WeightSum + charweight[key]*alphabetCharCount
          #print(WeightSum)
          print("This albhabet:",alphabetChar, ", alphabet Count:", alphabetCharCount, ",  alphabet Weight:", charweight[key], " Updated String Weight ", WeightSum)

print("Final String Weight: ", WeightSum)

Output

Char Weights:  {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9, 'j': 10, 'k': 11, 'l': 12, 'm': 13, 'n': 14, 'o': 15, 'p': 16, 'q': 17, 'r': 18, 's': 19, 't': 20, 'u': 21, 'v': 22, 'w': 23, 'x': 24, 'y': 25, 'z': 26}
Occurance:  {'t': 2, 'h': 1, 'i': 3, 's': 4, ' ': 4, 'a': 2, 'm': 1, 'p': 1, 'l': 1, 'e': 1, 'r': 1, 'n': 1, 'g': 1}
t : 2
This albhabet: t , alphabet Count: 2 ,  alphabet Weight: 20  Updated String Weight  40
h : 1
This albhabet: h , alphabet Count: 1 ,  alphabet Weight: 8  Updated String Weight  48
i : 3
This albhabet: i , alphabet Count: 3 ,  alphabet Weight: 9  Updated String Weight  75
s : 4
This albhabet: s , alphabet Count: 4 ,  alphabet Weight: 19  Updated String Weight  151
  : 4
a : 2
This albhabet: a , alphabet Count: 2 ,  alphabet Weight: 1  Updated String Weight  153
m : 1
This albhabet: m , alphabet Count: 1 ,  alphabet Weight: 13  Updated String Weight  166
p : 1
This albhabet: p , alphabet Count: 1 ,  alphabet Weight: 16  Updated String Weight  182
l : 1
This albhabet: l , alphabet Count: 1 ,  alphabet Weight: 12  Updated String Weight  194
e : 1
This albhabet: e , alphabet Count: 1 ,  alphabet Weight: 5  Updated String Weight  199
r : 1
This albhabet: r , alphabet Count: 1 ,  alphabet Weight: 18  Updated String Weight  217
n : 1
This albhabet: n , alphabet Count: 1 ,  alphabet Weight: 14  Updated String Weight  231
g : 1
This albhabet: g , alphabet Count: 1 ,  alphabet Weight: 7  Updated String Weight  238
Final String Weight:  238

Kesimpulan

Kami memberikan di sini dua kaedah berbeza untuk menunjukkan cara mencari berat rentetan rentetan yang diberikan. Mula-mula, aksara yang digunakan diambil daripada rentetan ujian yang diberikan satu demi satu dan kemudian berat masing-masing ditambah. Dengan mengulangi proses ini, berat rentetan akhir dikira. Dalam Contoh 2, mula-mula cari kekerapan aksara dalam rentetan dan kemudian darabkan kekerapan itu dengan berat aksara itu. Proses ini diulang untuk semua aksara yang digunakan dalam rentetan tertentu, dan berat rentetan akhir dikira.

Atas ialah kandungan terperinci Program Python untuk mencari berat rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam