Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python – Maximum Scoring word

  • Difficulty Level : Easy
  • Last Updated : 07 Sep, 2021

Given a String, the task is to write a Python program to compute maximum scoring words i.e words made of characters with a maximum positional summation.

Examples:

Input : test_str = ‘geeks must use geeksforgeeks for cs knowledge’

Output : geeksforgeeks

Explanation : Sum of characters positional values for “geeksforgeeks” word is maximum, hence result.

Input : test_str = ‘geeks love geeksforgeeks’

Output : geeksforgeeks

Explanation : Sum of characters positional values for “geeksforgeeks” word is maximum, hence result.

Method #1 : Using split() + loop + ord() + ascii_lowercase

In this, we initially split each word using split(), get positional magnitude using ord(), ascii_lowercase checks for correct pool of characters chosen for evaluation. 

Python3




# Python3 code to demonstrate working of
# Maximum Scoring word
# Using split() + loop + ord() + ascii_lowercase
import string
 
# initializing string
test_str = 'geeks must use geeksforgeeks for cs knowledge'
 
# printing original string
print("The original string is : " + str(test_str))
 
score = 0
max_sc = 0
res = ''
for wrd in test_str.split():
    score = 0
    # computing score
    for lttr in wrd:
        if lttr in string.ascii_lowercase:
            score += ord(lttr) - 96
 
    # updating maximum
    if score > max_sc:
        max_sc = score
        res = wrd
 
# printing result
print("Maximum scoring word : " + str(res))

Output:

The original string is : geeks must use geeksforgeeks for cs knowledge
Maximum scoring word : geeksforgeeks

Method #2 : Using sum() + loop + ord()

Similar to above method, only difference here being sum() is used for task of summation rather than internal loop.

Python3




# Python3 code to demonstrate working of
# Maximum Scoring word
# Using sum() + loop + ord()
import string
 
# initializing string
test_str = 'geeks must use geeksforgeeks for cs knowledge'
 
# printing original string
print("The original string is : " + str(test_str))
 
score = 0
max_sc = 0
res = ''
for wrd in test_str.split():
 
    # computing score
    # sum for cumulation
    score = sum(ord(lttr) - 96 for lttr in wrd if lttr in string.ascii_lowercase)
 
    # updating maximum
    if score > max_sc:
        max_sc = score
        res = wrd
 
# printing result
print("Maximum scoring word : " + str(res))

Output:

The original string is : geeks must use geeksforgeeks for cs knowledge
Maximum scoring word : geeksforgeeks

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!