Perfect Square String
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" ; else echo "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> |
Output
Yes
Time Complexity: O(len), where the len is the length of the string.
Auxiliary Space: O(1)
Please Login to comment...