Rumah > Artikel > pembangunan bahagian belakang > 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.
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.
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)
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
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
TotalWeight= (Occr(n1) * weight(n1)) + (Occr(n2) * weight(n2)) .....dan seterusnya
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)
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
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!