Given a String str and the task is to check sum of ASCII value of all characters is a perfect square or not.
Examples :
Input : ddddddddddddddddddddddddd
Output : YesInput : GeeksForGeeks
Output : No
Algorithm
- Calculate the string length
- Calculate sum of ASCII value of all characters
- Take the square root of the number sum and store it into variable squareRoot
- Take floor value of the squareRoot and subtract from squareRoot
- If the difference of floor value of squareRoot and squareRoot is 0 then print “Yes” otherwise “No”
Below is the implementation of the above approach :
C++
// C++ program to find if string is a // perfect square or not. #include <bits/stdc++.h> using namespace std; bool isPerfectSquareString(string str) { int sum = 0; // calculating the length of // the string int len = str.length(); // calculating the ASCII value // of the string for (int i = 0; i < len; i++) sum += (int)str[i]; // Find floating point value of // square root of x. long double squareRoot = sqrt(sum); // If square root is an integer return ((squareRoot - floor(squareRoot)) == 0); } // Driver code int main() { string str = "d"; if (isPerfectSquareString(str)) cout << "Yes"; else cout << "No"; } |
Java
// Java program to find if string // is a perfect square or not. import java.io.*; class GFG { static boolean isPerfectSquareString(String str) { int sum = 0; // calculating the length // of the string int len = str.length(); // calculating the ASCII // value of the string for (int i = 0; i < len; i++) sum += (int)str.charAt(i); // Find floating point value // of square root of x. long squareRoot = (long)Math.sqrt(sum); // If square root is an integer return ((squareRoot - Math.floor(squareRoot)) == 0); } // Driver code public static void main (String[] args) { String str = "d"; if (isPerfectSquareString(str)) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by Ajit. |
Python3
# Python3 program to find # if string is a perfect # square or not. import math; def isPerfectSquareString(str): sum = 0; # calculating the length # of the string l = len(str); # calculating the ASCII # value of the string for i in range(l): sum = sum + ord(str[i]); # Find floating point value # of square root of x. squareRoot = math.sqrt(sum); # If square root is an integer return ((squareRoot - math.floor(squareRoot)) == 0); # Driver code str = "d"; if (isPerfectSquareString(str)): print("Yes"); else: print("No"); # This code is contributed by mits |
C#
// C# program to find if string // is a perfect square or not. using System; class GFG { static bool isPerfectSquareString(string str) { int sum = 0; // calculating the length // of the string int len = str.Length; // calculating the ASCII // value of the string for (int i = 0; i < len; i++) sum += (int)str[i]; // Find floating point value // of square root of x. double squareRoot = Math.Sqrt(sum); double F = Math.Floor(squareRoot); // If square root is an integer return ((squareRoot - F) == 0); } // Driver Code public static void Main() { string str = "d"; if (isPerfectSquareString(str)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code is contributed by Sam007 |
PHP
<?php // PHP program to find if string // is a perfect square or not. function isPerfectSquareString($str) { $sum = 0; // calculating the length // of the string $len = strlen($str); // calculating the ASCII // value of the string for ($i = 0; $i < $len; $i++) $sum += (int)$str[$i]; // Find floating point value // of square root of x. $squareRoot = sqrt($sum); // If square root is an integer return (($squareRoot - floor($squareRoot)) == 0); } // Driver code $str = "d"; if (isPerfectSquareString($str)) echo "Yes"; elseecho "No"; // This code is contributed by m_kit ?> |
Javascript
<script> // JavaScript program to find if string is a // perfect square or not. function isPerfectSquareString(str) { var sum = 0; // Calculating the length of // the string var len = str.length; // Calculating the ASCII value // of the string for(var i = 0; i < len; i++) sum += str.charCodeAt(i); // Find floating point value of // square root of x. var squareRoot = Math.sqrt(sum); // If square root is an integer return squareRoot - Math.floor(squareRoot) == 0; } // Driver code var str = "d"; if (isPerfectSquareString(str)) document.write("Yes"); else document.write("No"); // This code is contributed by rdtank </script> |
Yes
Time Complexity: O(len), where the len is the length of the string.
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
