 Open in App
Not now

# Perfect Cube String

• Last Updated : 11 Oct, 2022

Given string str, the task is to check the sum of ASCII values of all characters in this string is a perfect cube or not.

Examples :

Input: str = “ll”
Output: Yes
ASCII value of l = 108
Therefore, sum of ASCII values = 108 + 108 = 216
which is a perfect cube 6 (6 * 6 * 6 = 216)

Input: str = “a”
Output: No
ASCII value of a = 97
Therefore, sum of ASCII values = 97
which is not a perfect cube

Algorithm

• For each character in the String, find out its ASCII value
• Calculate sum of ASCII values of all characters
• Check whether this sum is a perfect cube or not.
• If the sum is a perfect cube, then print “Yes” otherwise “No”

Below is the implementation of the above approach:

## C++

 `// C++ program to find if string is a` `// perfect cube or not.`   `#include ` `using` `namespace` `std;`   `bool` `isPerfectCubeString(string str)` `{` `    ``int` `sum = 0;`   `    ``// Finding ASCII values of each` `    ``// character and finding its sum` `    ``for` `(``int` `i = 0; i < str.length(); i++)` `        ``sum += (``int``)str[i];`   `    ``// Find the cube root of sum` `    ``long` `double` `cr = round(cbrt(sum));`   `    ``// Check if sum is a perfect cube` `    ``return` `(cr * cr * cr == sum);` `}`   `// Driver code` `int` `main()` `{` `    ``string str = ``"ll"``;`   `    ``if` `(isPerfectCubeString(str))` `        ``cout << ``"Yes"``;` `    ``else` `        ``cout << ``"No"``;` `}`

## Java

 `// Java program to find if String is a` `// perfect cube or not.` `import` `java.util.*;`   `class` `GFG{` ` `  `static` `boolean` `isPerfectCubeString(String str)` `{` `    ``int` `sum = ``0``;` ` `  `    ``// Finding ASCII values of each` `    ``// character and finding its sum` `    ``for` `(``int` `i = ``0``; i < str.length(); i++)` `        ``sum += (``int``)str.charAt(i);` ` `  `    ``// Find the cube root of sum` `    ``double` `cr = Math.round(Math.cbrt(sum));` ` `  `    ``// Check if sum is a perfect cube` `    ``return` `(cr * cr * cr == sum);` `}` ` `  `// Driver code` `public` `static` `void` `main(String[] args)` `{` `    ``String str = ``"ll"``;` ` `  `    ``if` `(isPerfectCubeString(str))` `        ``System.out.print(``"Yes"``);` `    ``else` `        ``System.out.print(``"No"``);` `}` `}`   `// This code is contributed by 29AjayKumar`

## Python3

 `# Python3 program to find if string is a` `# perfect cube or not.` `from` `math ``import` `ceil`   `def` `isPerfectCubeString(str1):` `    ``sum` `=` `0`   `    ``# Finding ASCII values of each` `    ``# character and finding its sum` `    ``for` `i ``in` `range``(``len``(str1)):` `        ``sum` `+``=` `ord``(str1[i])`   `    ``# Find the cube root of sum` `    ``cr ``=` `ceil((``sum``)``*``*``(``1``/``3``))`   `    ``# Check if sum is a perfect cube` `    ``return` `(cr ``*` `cr ``*` `cr ``=``=` `sum``)`   `# Driver code` `str1 ``=` `"ll"`   `if` `(isPerfectCubeString(str1)):` `    ``print``(``"Yes"``)` `else``:` `    ``print``(``"No"``)`   `# This code is contributed by mohit kumar 29`

## C#

 `// C# program to find if String is a` `// perfect cube or not.` `using` `System;`   `class` `GFG{`   `static` `bool` `isPerfectCubeString(String str)` `{` `    ``int` `sum = 0;`   `    ``// Finding ASCII values of each` `    ``// character and finding its sum` `    ``for` `(``int` `i = 0; i < str.Length; i++)` `        ``sum += (``int``)str[i];`   `    ``// Find the cube root of sum` `    ``double` `cr = Math.Round(Math.Pow(sum, (``double``) 1 / 3));` `    `  `    ``// Check if sum is a perfect cube` `    ``return` `(cr * cr * cr == sum);` `}`   `// Driver code` `public` `static` `void` `Main(String[] args)` `{` `    ``String str = ``"ll"``;`   `    ``if` `(isPerfectCubeString(str))` `        ``Console.Write(``"Yes"``);` `    ``else` `        ``Console.Write(``"No"``);` `}` `}`   `// This code is contributed by PrinciRaj1992`

## Javascript

 ``

Output:

`Yes`

Time complexity: O(n) where n is the length of the given string
Auxiliary space: O(1)

My Personal Notes arrow_drop_up
Related Articles