# Perfect Cube String

• Last Updated : 28 Jan, 2022

Given a 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`

My Personal Notes arrow_drop_up