Dada la string str, la string de retorno verdadera sigue el patrón a n b n , es decir, tiene a seguidas de b de modo que el número de a y b es el mismo.
Ejemplos:
C++
// C++ program to check if a string is of // the form a^nb^n. #include <iostream> using namespace std; // Returns true str is of the form a^nb^n. bool isAnBn(string str) { int n = str.length(); // After this loop 'i' has count of a's int i; for (i = 0; i < n; i++) if (str[i] != 'a') break; // Since counts of a's and b's should // be equal, a should appear exactly // n/2 times if (i * 2 != n) return false; // Rest of the characters must be all 'b' int j; for (j = i; j < n; j++) if (str[j] != 'b') return false; return true; } // Driver code int main() { string str = "abab"; // Function call isAnBn(str) ? cout << "Yes" : cout << "No"; return 0; }
Java
// Java program to check if a string is of // the form a^nb^n. import java.util.*; import java.lang.*; import java.io.*; class CheckPattern { public static boolean isAnBn(String s) { int l = s.length(); // Only even length strings will have same number of // a's and b's if (l % 2 == 1) { return false; } // Set two pointers, one from the left and another // from right int i = 0; int j = l - 1; // Compare the characters till the center while (i < j) { if (s.charAt(i) != 'a' || s.charAt(j) != 'b') { return false; } i++; j--; } return true; } public static void main(String[] args) throws java.lang.Exception { String s = "abab"; // Function call boolean value = isAnBn(s); if (value == true) { System.out.println("Yes"); } else { System.out.println("No"); } } } // Code contributed by Shivani Sanjay Shinde.
Python3
# Python 3program to check if a # string is of the form a^nb^n. # Returns true str is of the # form a^nb^n. def isAnBn(str): n = len(str) # After this loop 'i' has # count of a's for i in range(n): if (str[i] != 'a'): break # Since counts of a's and b's should # be equal, a should appear exactly # n/2 times if (i * 2 != n): return False # Rest of the characters must # be all 'b' for j in range(i, n): if (str[j] != 'b'): return False return True # Driver code if __name__ == "__main__": str = "abab" print("Yes") if isAnBn(str) else print("No") # This code is contributed # by ChitraNayal
C#
// C# program to check if a string // is of the form a^ nb ^ n. using System; class GFG { // Function returns true str is of the form a^nb^n. public static bool isAnBn(String s) { int l = s.Length; // Only even length strings will have // same number of a's and b's if (l % 2 == 1) { return false; } // Set two pointers, one from the // left and another from right int i = 0; int j = l - 1; // Compare the characters // till the center while (i < j) { if (s[i] != 'a' || s[j] != 'b') { return false; } i++; j--; } return true; } // Driver Code public static void Main() { String s = "abab"; // Function call bool value = isAnBn(s); if (value == true) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by Nitin Mittal.
PHP
<?php // PHP program to check if a string // is of the form a^nb^n. // Returns true str is of // the form a^nb^n. function isAnBn($str) { $n = strlen($str); // After this loop 'i' // has count of a's $i; for($i = 0; $i < $n; $i++) if ($str[$i] != 'a') break; // Since counts of a's and b's should // be equal, a should appear exactly // n/2 times if ($i * 2 != $n) return false; // Rest of the characters // must be all 'b' $j; for($j = $i; $j < $n; $j++) if ($str[$j] != 'b') return false; return true; } // Driver code $str = "abab"; if(isAnBn($str)) echo "Yes"; else echo "No"; // This code is contributed by nitin mittal. ?>
Javascript
<script> // Javascript program to check if a string is of // the form a^nb^n. function isAnBn(s) { let l = s.length; // Only even length strings will have same number of // a's and b's if (l % 2 == 1) { return false; } // Set two pointers, one from the left and another // from right let i = 0; let j = l - 1; // Compare the characters till the center while (i < j) { if (s[i] != 'a' || s[j] != 'b') { return false; } i++; j--; } return true; } let s = "abab"; // Function call let value = isAnBn(s); if (value == true) { document.write("Yes"); } else { document.write("No"); } // This code is contributed by ab2127 </script>
C++
// C++ code to check a^nb^n // pattern #include <iostream> using namespace std; // Returns "Yes" str is of the form a^nb^n. string isAnBn(string str) { int n = str.length(); if (n & 1) return "No"; // check first half is 'a' and other half is full of 'b' int i; for (i = 0; i < n / 2; i++) if (str[i] != 'a' || str[n - i - 1] != 'b') return "No"; return "Yes"; } // Driver code int main() { string str = "ab"; // Function call cout << isAnBn(str); return 0; }
Java
// Java code to check a^nb^n // pattern import java.io.*; class GFG { // Returns "Yes" str is of the form a^nb^n. static String isAnBn(String str) { int n = str.length(); if ((n & 1) != 0) return "No"; // check first half is 'a' and other half is full of 'b' int i; for (i = 0; i < n / 2; i++) if (str.charAt(i) != 'a' || str.charAt(n - i - 1) != 'b') return "No"; return "Yes"; } // Driver code public static void main (String[] args) { String str = "ab"; // Function call System.out.println(isAnBn(str)); } } // This code is contributed by rag2127
Python3
# Python3 code to check # a^nb^n pattern def isanbn(str): n=len(str) # if length of str is odd return No if n&1: return "No" # check first half is 'a' and other half is full of 'b' for i in range(int(n/2)): if str[i]!='a' or str[n-i-1]!='b': return "No" return "Yes" # Driver code input_str = "ab" # Function call print(isanbn(input_str))
C#
// C# code to check a^nb^n // pattern using System; public class GFG { // Returns "Yes" str is of the form a^nb^n. static string isAnBn(string str) { int n = str.Length; if ((n & 1) != 0) return "No"; // check first half is 'a' and other half is full of 'b' int i; for (i = 0; i < n / 2; i++) if (str[i] != 'a' || str[n-i-1] != 'b') return "No"; return "Yes"; } // Driver code static public void Main () { string str = "ab"; // Function call Console.WriteLine(isAnBn(str)); } } // This code is contributed by avanitrachhadiya2155
Javascript
<script> // Javascript code to check a^nb^n // pattern // Returns "Yes" str is of the form a^nb^n. function isAnBn(str) { let n = str.length; if ((n & 1) != 0) return "No"; // check first half is 'a' and other half is full of 'b' let i; for (i = 0; i < n / 2; i++) if (str[i] != 'a' || str[n - i - 1] != 'b') return "No"; return "Yes"; } // Driver code let str = "ab"; // Function call document.write(isAnBn(str)); // This code is contributed by unknown2108 </script>
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA