Sum of the alphabetical values of the characters of a string
Last Updated :
07 Dec, 2022
You are given an array of strings str, the task is to find the score of a given string s from the array. The score of a string is defined as the product of the sum of its character alphabetical values with the position of the string in the array.
Examples:
Input: str[] = {“sahil”, “shashanak”, “sanjit”, “abhinav”, “mohit”}, s = “abhinav”
Output: 228
Sum of alphabetical values of “abhinav” = 1 + 2 + 8 + 9 + 14 + 1 + 22 = 57
Position of “abhinav” in str is 4, 57 x 4 = 228
Input: str[] = {“geeksforgeeks”, “algorithms”, “stack”}, s = “algorithms”
Output: 244
Approach:
- Find the given string in the array and store the position of the string.
- Then calculate the sum of the alphabetical values of the given string.
- Multiply the position of the string in the given array with the value calculated in the previous step and print the result.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
int strScore(string str[], string s, int n)
{
int score = 0, index;
for ( int i = 0; i < n; i++) {
if (str[i] == s) {
for ( int j = 0; j < s.length(); j++)
score += s[j] - 'a' + 1;
index = i + 1;
break ;
}
}
score = score * index;
return score;
}
int main()
{
string str[] = { "sahil" , "shashanak"
, "sanjit" , "abhinav" , "mohit" };
string s = "abhinav" ;
int n = sizeof (str) / sizeof (str[0]);
int score = strScore(str, s, n);
cout << score << endl;
return 0;
}
|
Java
import java.io.*;
class GFG {
static int strScore(String str[], String s, int n)
{
int score = 0 , index= 0 ;
for ( int i = 0 ; i < n; i++) {
if (str[i] == s) {
for ( int j = 0 ; j < s.length(); j++)
score += s.charAt(j) - 'a' + 1 ;
index = i + 1 ;
break ;
}
}
score = score * index;
return score;
}
public static void main (String[] args) {
String str[] = { "sahil" , "shashanak"
, "sanjit" , "abhinav" , "mohit" };
String s = "abhinav" ;
int n = str.length;
int score = strScore(str, s, n);
System.out.println( score);
}
}
|
Python3
def strScore( str , s, n):
score = 0
index = 0
for i in range (n):
if ( str [i] = = s):
for j in range ( len (s)):
score + = ( ord (s[j]) -
ord ( 'a' ) + 1 )
index = i + 1
break
score = score * index
return score
str = [ "sahil" , "shashanak" , "sanjit" ,
"abhinav" , "mohit" ]
s = "abhinav"
n = len ( str )
score = strScore( str , s, n);
print (score)
|
C#
using System;
class GFG
{
static int strScore(String []str,
String s, int n)
{
int score = 0, index = 0;
for ( int i = 0; i < n; i++)
{
if (str[i] == s)
{
for ( int j = 0; j < s.Length; j++)
score += s[j] - 'a' + 1;
index = i + 1;
break ;
}
}
score = score * index;
return score;
}
public static void Main (String[] args)
{
String []str = { "sahil" , "shashanak" , "sanjit" ,
"abhinav" , "mohit" };
String s = "abhinav" ;
int n = str.Length;
int score = strScore(str, s, n);
Console.Write( score);
}
}
|
PHP
<?php
function strScore( $str , $s , $n )
{
$score = 0;
$index ;
for ( $i = 0; $i < $n ; $i ++)
{
if ( $str [ $i ] == $s )
{
for ( $j = 0; $j < strlen ( $s ); $j ++)
$score += (ord( $s [ $j ]) - ord( 'a' )) + 1;
$index = ( $i + 1);
break ;
}
}
$score = $score * $index ;
return $score ;
}
$str = array ( "sahil" , "shashanak" ,
"sanjit" , "abhinav" , "mohit" );
$s = "abhinav" ;
$n = sizeof( $str );
$score = strScore( $str , $s , $n );
echo $score , "\n" ;
?>
|
Javascript
<script>
function strScore(str, s , n)
{
var score = 0, index=0;
for (i = 0; i < n; i++) {
if (str[i] == s) {
for (j = 0; j < s.length; j++){
score += s.charAt(j).charCodeAt(0) - ( 'a' ).charCodeAt(0) + 1;
}
index = i + 1;
break ;
}
}
score = score * index;
return score;
}
str = [ "sahil" , "shashanak"
, "sanjit" , "abhinav" , "mohit" ];
s = "abhinav" ;
var n = str.length;
var score = strScore(str, s, n);
document.write( score);
</script>
|
Time Complexity: O(l * n), where l is the size of the given string array and n is the length of the given string input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Share your thoughts in the comments
Please Login to comment...