Package org.drip.service.common
Class StringUtil
java.lang.Object
org.drip.service.common.StringUtil
public class StringUtil
extends java.lang.Object
StringUtil implements string utility functions. It exports the following functions:
- Decompose + Transform string arrays into appropriate target type set/array/list, and vice versa
- General-purpose String processor functions, such as GUID generator, splitter, type converter and input checker
- Module = Computational Core Module
- Library = Numerical Analysis Library
- Project = Environment, Product/Definition Containers, and Scenario/State Manipulation APIs
- Package = Assorted Data Structures Support Utilities
- Author:
- Lakshmi Krishnamurthy
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
NULL_SER_STRING
Null serialized stringstatic double
VERSION
Serialization Version - ALWAYS prepend this on all derived classes -
Constructor Summary
Constructors Constructor Description StringUtil()
-
Method Summary
Modifier and Type Method Description static int
AToI(java.lang.String s)
Implement atoi which converts a string to an integer.static int
BalanceString(java.lang.String s)
Given a string containing only 4 kinds of characters 'Q', 'W', 'E' and 'R'.static boolean
BooleanListFromString(java.util.List<java.lang.Boolean> lsb, java.lang.String strList, java.lang.String strDelim)
Create a list of booleans from a delimited stringstatic int
ClosestPalindromicInteger(int i)
Given an integer n, find the closest integer (not including itself), which is a palindrome.static java.util.List<java.lang.String>
CollectSameCharacters(java.lang.String s)
Given a string s of lower-case letters, partition s into as many as parts so that one letter only appear in one part.static java.util.List<java.lang.String>
ConditionalWordList(java.lang.String s)
Given a string s of lower-case letters, find as many sub-strings as possible that meet the following criteria: - no overlap among strings - one letter can only exist in one string.static java.lang.String
ConstrainedWord(int a, int b, int c)
Given a, b, c, find any string of maximum length that can be created such that no 3 consecutive characters are same.static int
DecimalNumberFromString(java.lang.String s)
Convert the String to a Numberstatic java.lang.String
DecodeStringAtIndex(java.lang.String s, int k)
An encoded string is given.static java.util.List<java.lang.String>
FrequencyBasedWordDecomposition(java.util.Map<java.lang.String,java.lang.Integer> wordFrequencyMap, java.lang.String s)
Break the given string into words, provided by a given hash-map of frequency of word as word : frequency.static java.util.List<java.util.List<java.lang.String>>
GroupAnagrams(java.lang.String[] wordArray)
Given an array of words, group anagrams together.static java.util.List<java.util.List<java.lang.String>>
GroupAnagrams2(java.lang.String[] wordArray)
Given an array of words, group anagrams together.static java.lang.String
GUID()
Generate a GUID stringstatic java.lang.String
InPlaceWordReversion(java.lang.String s)
Given an input string, reverse the order of the words.static boolean
IntegerListFromString(java.util.List<java.lang.Integer> lsi, java.lang.String strList, java.lang.String strDelim)
Create a list of integers from a delimited stringstatic int
InvalidParenthesisMinimalAdd(java.lang.String s)
Given a string of '(' and ')' parentheses, add the minimum number of parentheses ( '(' or ')', and in any positions ) so that the resulting parentheses string is valid.static java.lang.String
InvalidParenthesisMinimalRemove(java.lang.String s)
Given a string of '(' , ')' and lowercase English characters, remove the minimum number of parentheses ( '(' or ')', in any positions ) so that the resulting parentheses string is valid and return any valid string.static boolean
IsEmpty(java.lang.String str)
Indicate if the Input String is Emptystatic boolean
IsPermutationPresent(java.lang.String s1, java.lang.String s2)
Is Permutation s2 Present in s1?static boolean
IsValidPalindrome(java.lang.String s)
Given a non-empty string, you may delete at most one character.static boolean
KeyValueListFromStringArray(java.util.List<java.lang.Double> lsdblKey, java.util.List<java.lang.Double> lsdblValue, java.lang.String strArray, java.lang.String strRecordDelim, java.lang.String strKVDelim)
Split the string array into pairs of key-value doubles and returns themstatic int
LengthOfLongestNonRepeatingSubstring(java.lang.String s)
Find the length of the longest substring without repeating characters.static java.lang.String
LongestDistinctSubstring(java.lang.String s)
Generate the Longest Distinct Substringstatic java.lang.String
LongestNonRepeatingSubstring(java.lang.String s)
Given a string, find the length of the longest substring without repeating characters.static java.lang.String
LongestPalindromeSubstring(java.lang.String s)
Given a string, find the longest palindromic substring in it.static java.lang.String
LongestPalindromicSubstring(java.lang.String s)
Given a string, find the longest palindromic substring.static java.lang.String
LongestVowel(java.lang.String s)
Given a string of lower characters, remove at most two substrings of any length from the given string such that the remaining string contains vowels('a','e','i','o','u') only.static void
main(java.lang.String[] argumentArray)
Entry Pointstatic double[]
MakeDoubleArrayFromStringTokenizer(java.util.StringTokenizer stdbl)
Make an array of double from a string tokenizerstatic int[]
MakeIntegerArrayFromStringTokenizer(java.util.StringTokenizer st)
Make an array of Integers from a string tokenizerstatic java.lang.String
MakeStringArg(java.lang.String strArg)
Format the given string parameter into an argumentstatic int
MatchingPairCount(java.lang.String s, java.lang.String t)
Count the Number of Matching Pairs of t in sstatic boolean
MatchInStringArray(java.lang.String[] astrFieldToMatch, java.lang.String[] astrMatchSet, boolean bCaseMatch)
Look for a match of the field in the field set to an entry in the input arraystatic boolean
MatchInStringArray(java.lang.String strFieldToMatch, java.lang.String[] astrMatchSet, boolean bCaseMatch)
Look for a match of the field in the input arraystatic int
MaximumPalindromeProductLength(java.lang.String s)
Compute the Maximum Palindrome Product Lengthstatic java.util.List<java.util.List<java.lang.String>>
MergeAccountList(java.util.List<java.util.List<java.lang.String>> accounts)
Generate a List of Merged Accountsstatic java.lang.String
MinimumWindowSubstring(java.lang.String s, java.lang.String t)
Retrieve the Minimum Window represented by t inside sstatic java.lang.String
MultiplyNumbers(java.lang.String num1, java.lang.String num2)
Given two non-negative integers represented as strings, return their product, also represented as a string.static java.lang.String[]
NearestCities(java.lang.String[] cities, int[] xCoordinateArray, int[] yCoordinateArray, java.lang.String[] queryCities)
Company A has Fulfillment Centers in multiple cities within a large geographic region.static java.lang.String
NestedArrayDepthSum(java.lang.String expression)
Given Nested Array calculate the Depth Sum.static int
NextGreaterInteger(int n)
Given a positive 32-bit integer, you need to find the smallest 32-bit integer which has exactly the same digits existing in the integer and is greater in value.static boolean
ParseFromUnitaryString(java.lang.String strUnitaryBoolean)
Check if the string represents an unitary booleanstatic int
PasswordChangeSteps(java.lang.String password)
Find the Minimum of Steps to Make the Password Validstatic java.util.Set<java.lang.String>
PermutationSet(java.lang.String s)
Generate the Set of all Permutation Sub-stringsstatic java.lang.String
ProcessInputForNULL(java.lang.String strIn, boolean bEmptyToNULL)
Check the Input String to Check for NULL - and return itstatic java.lang.String
RemoveMinimumValidParenthesis(java.lang.String s)
Trim out the Minimal Valid Parenthesisstatic java.lang.String
ReorganizeString(java.lang.String in)
Reorganize the given Stringstatic java.lang.String
ReverseWords(java.lang.String s)
Given an input string, reverse the string word by word.static java.lang.String
RotationalCipher(java.lang.String in, int rotationFactor)
One simple way to encrypt a string is to "rotate" every alphanumeric character by a certain amount.static java.util.List<java.lang.String>
ShortestWordTransformationSequence(java.util.List<java.lang.String> wordList, java.lang.String beginWord, java.lang.String endWord)
A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ...static java.lang.String
SimplifyPath(java.lang.String path)
Given an absolute path for a file (Unix-style), simplify it.static int
solution(int[] A)
Compute the Sum of the Integersstatic java.lang.String[]
Split(java.lang.String inputPhrase, java.lang.String delimiter)
Parse and Split the Input Phrase into a String Array using the specified Delimiterstatic java.util.List<java.util.List<java.lang.String>>
SplitIntoUniquePrimes(java.lang.String number)
A company's operations team needs an algorithm that can break out a list of products for a given order.static java.lang.String
StringArrayToString(java.lang.String[] astr, java.lang.String strRecordDelimiter, java.lang.String strNULL)
Convert the String Array to a Record Delimited Stringstatic boolean
StringMatch(java.lang.String strLeft, java.lang.String strRight)
Indicate it the pair of Strings Match each other in Valuestatic java.lang.String
ThreeDigitNumber(int i)
Convert the Number to Stringstatic java.lang.String
ToString(boolean flag)
Convert the Boolean Flag to Stringstatic boolean
ValidateNumber(java.lang.String s)
A valid number can be split up into these components (in order): A decimal number or an integer.static boolean
ValidateParenthesis(java.lang.String input)
Indicate if the Input String is composed of Valid Parenthesis Sequencestatic boolean
ValidateParenthesisString(java.lang.String s)
Given a string containing only three types of characters: '(', ')' and '*', write a function to check whether this string is valid.static java.lang.String
ValidIPAddressType(java.lang.String s)
Function to check whether an input string is a valid IPv4 address or IPv6 address or neither.static int
VersionCompare(java.lang.String version1, java.lang.String version2)
Compare two version numbers version1 and version2.static boolean
WildcardPatternMatchingValidation(java.lang.String s, java.lang.String p)
Validate the Wild-card Pattern Matchstatic java.util.List<java.lang.Integer>
WordConcatenationStartList(java.lang.String full, java.util.Set<java.lang.String> subset)
Generate the List of Word Concatenation StartMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
NULL_SER_STRING
public static final java.lang.String NULL_SER_STRINGNull serialized string- See Also:
- Constant Field Values
-
VERSION
public static final double VERSIONSerialization Version - ALWAYS prepend this on all derived classes- See Also:
- Constant Field Values
-
-
Constructor Details
-
StringUtil
public StringUtil()
-
-
Method Details
-
DecimalNumberFromString
public static final int DecimalNumberFromString(java.lang.String s)Convert the String to a Number- Parameters:
s
- Input String- Returns:
- The Number
-
MatchInStringArray
public static final boolean MatchInStringArray(java.lang.String strFieldToMatch, java.lang.String[] astrMatchSet, boolean bCaseMatch)Look for a match of the field in the input array- Parameters:
strFieldToMatch
- Field To MatchastrMatchSet
- Array of fields to compare withbCaseMatch
- TRUE - Match case- Returns:
- TRUE - Match found according to the criteria specified
-
MatchInStringArray
public static final boolean MatchInStringArray(java.lang.String[] astrFieldToMatch, java.lang.String[] astrMatchSet, boolean bCaseMatch)Look for a match of the field in the field set to an entry in the input array- Parameters:
astrFieldToMatch
- Field Array To MatchastrMatchSet
- Array of fields to compare withbCaseMatch
- TRUE - Match case- Returns:
- TRUE - Match found according to the criteria specified
-
MakeStringArg
public static final java.lang.String MakeStringArg(java.lang.String strArg)Format the given string parameter into an argument- Parameters:
strArg
- String Argument- Returns:
- Parameter from the Argument
-
ProcessInputForNULL
public static final java.lang.String ProcessInputForNULL(java.lang.String strIn, boolean bEmptyToNULL)Check the Input String to Check for NULL - and return it- Parameters:
strIn
- Input StringbEmptyToNULL
- TRUE if Empty String needs to be converted to NULL- Returns:
- The Processed String
-
Split
public static final java.lang.String[] Split(java.lang.String inputPhrase, java.lang.String delimiter)Parse and Split the Input Phrase into a String Array using the specified Delimiter- Parameters:
inputPhrase
- Input Phrasedelimiter
- Delimiter- Returns:
- Array of Sub-Strings
-
ParseFromUnitaryString
public static final boolean ParseFromUnitaryString(java.lang.String strUnitaryBoolean)Check if the string represents an unitary boolean- Parameters:
strUnitaryBoolean
- String input- Returns:
- TRUE - Unitary Boolean
-
MakeIntegerArrayFromStringTokenizer
public static final int[] MakeIntegerArrayFromStringTokenizer(java.util.StringTokenizer st)Make an array of Integers from a string tokenizer- Parameters:
st
- Tokenizer containing delimited doubles- Returns:
- Double array
-
MakeDoubleArrayFromStringTokenizer
public static final double[] MakeDoubleArrayFromStringTokenizer(java.util.StringTokenizer stdbl)Make an array of double from a string tokenizer- Parameters:
stdbl
- Tokenizer containing delimited doubles- Returns:
- Double array
-
GUID
public static final java.lang.String GUID()Generate a GUID string- Returns:
- String representing the GUID
-
KeyValueListFromStringArray
public static final boolean KeyValueListFromStringArray(java.util.List<java.lang.Double> lsdblKey, java.util.List<java.lang.Double> lsdblValue, java.lang.String strArray, java.lang.String strRecordDelim, java.lang.String strKVDelim)Split the string array into pairs of key-value doubles and returns them- Parameters:
lsdblKey
- [out] List of KeyslsdblValue
- [out] List of ValuesstrArray
- [in] String containing KV recordsstrRecordDelim
- [in] Record DelimiterstrKVDelim
- [in] Key-Value Delimiter- Returns:
- True if parsing is successful
-
IntegerListFromString
public static final boolean IntegerListFromString(java.util.List<java.lang.Integer> lsi, java.lang.String strList, java.lang.String strDelim)Create a list of integers from a delimited string- Parameters:
lsi
- [Output] List of IntegersstrList
- Delimited String inputstrDelim
- Delimiter- Returns:
- True if successful
-
BooleanListFromString
public static final boolean BooleanListFromString(java.util.List<java.lang.Boolean> lsb, java.lang.String strList, java.lang.String strDelim)Create a list of booleans from a delimited string- Parameters:
lsb
- [Output] List of BooleansstrList
- Delimited String inputstrDelim
- Delimiter- Returns:
- True if successful
-
StringArrayToString
public static final java.lang.String StringArrayToString(java.lang.String[] astr, java.lang.String strRecordDelimiter, java.lang.String strNULL)Convert the String Array to a Record Delimited String- Parameters:
astr
- Input String ArraystrRecordDelimiter
- The String Record DelimiterstrNULL
- NULL String Indicator- Returns:
- The Record Delimited String Array
-
IsEmpty
public static final boolean IsEmpty(java.lang.String str)Indicate if the Input String is Empty- Parameters:
str
- The Input String- Returns:
- TRUE - The Input String is Empty
-
StringMatch
public static final boolean StringMatch(java.lang.String strLeft, java.lang.String strRight)Indicate it the pair of Strings Match each other in Value- Parameters:
strLeft
- The Left StringstrRight
- The Right String- Returns:
- TRUE - The Strings Match
-
AToI
public static final int AToI(java.lang.String s)Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional initial plus or minus sign followed by as many numerical digits as possible, and interprets them as a numerical value. The string can contain additional characters after those that form the integral number, which are ignored and have no effect on the behavior of this function. If the first sequence of non-whitespace characters in s is not a valid integral number, or if no such sequence exists because either s is empty or it contains only whitespace characters, no conversion is performed. If no valid conversion could be performed, a zero value is returned. Note: Only the space character ' ' is considered as whitespace character. Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [-10^231, 10^231 − 1]. If the numerical value is out of the range of representable values, INT_MAX (-10^231) or INT_MIN (10^231 - 1) is returned.- Parameters:
s
- Input String- Returns:
- The Integer
-
ReverseWords
public static final java.lang.String ReverseWords(java.lang.String s)Given an input string, reverse the string word by word.- Parameters:
s
- Input String- Returns:
- String with Words Reversed
-
ValidIPAddressType
public static final java.lang.String ValidIPAddressType(java.lang.String s)Function to check whether an input string is a valid IPv4 address or IPv6 address or neither. IPv4 addresses are canonically represented in dot-decimal notation, which consists of four decimal numbers, each ranging from 0 to 255, separated by dots ("."), e.g.,172.16.254.1; Besides, leading zeros in the IPv4 is invalid. For example, the address 172.16.254.01 is invalid. IPv6 addresses are represented as eight groups of four hexadecimal digits, each group representing 16 bits. The groups are separated by colons (":"). For example, the address 2001:0db8:85a3:0000:0000:8a2e:0370:7334 is a valid one. Also, we could omit some leading zeros among four hexadecimal digits and some low-case characters in the address to upper-case ones, so 2001:db8:85a3:0:0:8A2E:0370:7334 is also a valid IPv6 address(Omit leading zeros and using upper cases). However, we don't replace a consecutive group of zero value with a single empty group using two consecutive colons (::) to pursue simplicity. For example, 2001:0db8:85a3::8A2E:0370:7334 is an invalid IPv6 address. Besides, extra leading zeros in the IPv6 is also invalid. For example, the address 02001:0db8:85a3:0000:0000:8a2e:0370:7334 is invalid. Note: You may assume there is no extra space or special characters in the input string.- Parameters:
s
- Input String- Returns:
- IP Address Type
-
VersionCompare
public static final int VersionCompare(java.lang.String version1, java.lang.String version2)Compare two version numbers version1 and version2. If version1 gt version2 return 1; if version1 lt version2 return -1;otherwise return 0. You may assume that the version strings are non-empty and contain only digits and the . character. The . character does not represent a decimal point and is used to separate number sequences. For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision. You may assume the default revision number for each level of a version number to be 0. For example, version number 3.4 has a revision number of 3 and 4 for its first and second level revision number. Its third and fourth level revision number are both 0.- Parameters:
version1
- First Version Stringversion2
- Second Version String- Returns:
- Results of the Comparison
-
LongestPalindromicSubstring
public static final java.lang.String LongestPalindromicSubstring(java.lang.String s)Given a string, find the longest palindromic substring.- Parameters:
s
- Input String- Returns:
- The Longest Palindromic substring
-
LengthOfLongestNonRepeatingSubstring
public static final int LengthOfLongestNonRepeatingSubstring(java.lang.String s)Find the length of the longest substring without repeating characters.- Parameters:
s
- Input String- Returns:
- Length of the longest substring without repeating characters.
-
ValidateParenthesisString
public static final boolean ValidateParenthesisString(java.lang.String s)Given a string containing only three types of characters: '(', ')' and '*', write a function to check whether this string is valid. We define the validity of a string by these rules: Any left parenthesis '(' must have a corresponding right parenthesis ')'. Any right parenthesis ')' must have a corresponding left parenthesis '('. Left parenthesis '(' must go before the corresponding right parenthesis ')'. '*' could be treated as a single right parenthesis ')' or a single left parenthesis '(' or an empty string. An empty string is also valid.- Parameters:
s
- Input String- Returns:
- TRUE - The String has Valid Parenthesis
-
NextGreaterInteger
public static final int NextGreaterInteger(int n)Given a positive 32-bit integer, you need to find the smallest 32-bit integer which has exactly the same digits existing in the integer and is greater in value. If no such positive 32-bit integer exists, you need to return -1.- Parameters:
n
- Input Integer- Returns:
- Next Greater Number
-
SimplifyPath
public static final java.lang.String SimplifyPath(java.lang.String path)Given an absolute path for a file (Unix-style), simplify it. Or in other words, convert it to the canonical path. In a UNIX-style file system, a period . refers to the current directory. Furthermore, a double period .. moves the directory up a level. Note that the returned canonical path must always begin with a slash /, and there must be only a single slash / between two directory names. The last directory name (if it exists) must not end with a trailing /. Also, the canonical path must be the shortest string representing the absolute path.- Parameters:
path
- Input Path- Returns:
- Simplified Path
-
BalanceString
public static final int BalanceString(java.lang.String s)Given a string containing only 4 kinds of characters 'Q', 'W', 'E' and 'R'. A string is said to be balanced if each of its characters appears n/4 times where n is the length of the string. Return the minimum length of the substring that can be replaced with any other string of the same length to make the original string balanced. Return 0 if the string is already balanced.- Parameters:
s
- Input String- Returns:
- Minimum length of the substring
-
MultiplyNumbers
public static final java.lang.String MultiplyNumbers(java.lang.String num1, java.lang.String num2)Given two non-negative integers represented as strings, return their product, also represented as a string.- Parameters:
num1
- First Numbernum2
- Second Number- Returns:
- The Product
-
RotationalCipher
public static final java.lang.String RotationalCipher(java.lang.String in, int rotationFactor)One simple way to encrypt a string is to "rotate" every alphanumeric character by a certain amount. Rotating a character means replacing it with another character that is a certain number of steps away in normal alphabetic or numerical order. For example, if the string "Zebra-493?" is rotated 3 places, the resulting string is "Cheud-726?". Every alphabetic character is replaced with the character 3 letters higher (wrapping around from Z to A), and every numeric character replaced with the character 3 digits higher (wrapping around from 9 to 0). Note that the non-alphanumeric characters remain unchanged. Given a string and a rotation factor, return an encrypted string.- Parameters:
in
- Input StringrotationFactor
- Rotation Factor- Returns:
- The Encrypted String
-
MatchingPairCount
public static final int MatchingPairCount(java.lang.String s, java.lang.String t)Count the Number of Matching Pairs of t in s- Parameters:
s
- st
- t- Returns:
- Count of the Number of Matching Pairs of t in s
-
MinimumWindowSubstring
public static final java.lang.String MinimumWindowSubstring(java.lang.String s, java.lang.String t)Retrieve the Minimum Window represented by t inside s- Parameters:
s
- st
- t- Returns:
- The Minimum Window String represented by t inside s
-
IsValidPalindrome
public static final boolean IsValidPalindrome(java.lang.String s)Given a non-empty string, you may delete at most one character. Judge whether you can make it a palindrome.- Parameters:
s
- Input String- Returns:
- TRUE - Can be turned into a Palindrome with one Deletion
-
ClosestPalindromicInteger
public static final int ClosestPalindromicInteger(int i)Given an integer n, find the closest integer (not including itself), which is a palindrome. The 'closest' is defined as absolute difference minimized between two integers.- Parameters:
i
- The Integer- Returns:
- Closest Palindrome Integer
-
NestedArrayDepthSum
public static final java.lang.String NestedArrayDepthSum(java.lang.String expression)Given Nested Array calculate the Depth Sum.- Parameters:
expression
- The Expression- Returns:
- Value of the Nested Array Sum
-
DecodeStringAtIndex
public static final java.lang.String DecodeStringAtIndex(java.lang.String s, int k)An encoded string is given. To find and write the decoded string to a tape, the encoded string is read one character at a time and the following steps are taken: If the character read is a letter, that letter is written onto the tape. If the character read is a digit (say d), the entire current tape is repeatedly written d-1 more times in total. Now for some encoded string, and an index K, find and return the kth letter (1 indexed) in the decoded string.- Parameters:
s
- Input Stringk
- kth Location (1-indexed)- Returns:
- kth letter (1 indexed) in the decoded string.
-
LongestPalindromeSubstring
public static final java.lang.String LongestPalindromeSubstring(java.lang.String s)Given a string, find the longest palindromic substring in it. You may assume that the maximum length of the string is 1000.- Parameters:
s
- The Input String- Returns:
- The Longest Palindrome Sub-string
-
LongestNonRepeatingSubstring
public static final java.lang.String LongestNonRepeatingSubstring(java.lang.String s)Given a string, find the length of the longest substring without repeating characters.- Parameters:
s
- The Given String- Returns:
- The Longest Non-repeating Sub-string
-
ThreeDigitNumber
public static final java.lang.String ThreeDigitNumber(int i)Convert the Number to String- Parameters:
i
- Input Number- Returns:
- The Converted String
-
ReorganizeString
public static final java.lang.String ReorganizeString(java.lang.String in)Reorganize the given String- Parameters:
in
- Input String- Returns:
- The Reorganized String
-
RemoveMinimumValidParenthesis
public static final java.lang.String RemoveMinimumValidParenthesis(java.lang.String s)Trim out the Minimal Valid Parenthesis- Parameters:
s
- Input String- Returns:
- The Trimmed out String
-
PermutationSet
public static final java.util.Set<java.lang.String> PermutationSet(java.lang.String s)Generate the Set of all Permutation Sub-strings- Parameters:
s
- Input String- Returns:
- Set of all Permutation Sub-strings
-
IsPermutationPresent
public static final boolean IsPermutationPresent(java.lang.String s1, java.lang.String s2)Is Permutation s2 Present in s1?- Parameters:
s1
- Master Strings2
- Sub-string- Returns:
- TRUE - Permutation s2 Present in s1
-
MergeAccountList
public static final java.util.List<java.util.List<java.lang.String>> MergeAccountList(java.util.List<java.util.List<java.lang.String>> accounts)Generate a List of Merged Accounts- Parameters:
accounts
- List of Accounts- Returns:
- List of Merged Accounts
-
solution
public static final int solution(int[] A)Compute the Sum of the Integers- Parameters:
A
- Input Array- Returns:
- Sum of the Integers
-
ValidateParenthesis
public static final boolean ValidateParenthesis(java.lang.String input)Indicate if the Input String is composed of Valid Parenthesis Sequence- Parameters:
input
- Input String- Returns:
- TRUE - The Input String is composed of Valid Parenthesis Sequence
-
LongestDistinctSubstring
public static final java.lang.String LongestDistinctSubstring(java.lang.String s)Generate the Longest Distinct Substring- Parameters:
s
- Input String- Returns:
- The Longest Distinct Substring
-
InvalidParenthesisMinimalRemove
public static final java.lang.String InvalidParenthesisMinimalRemove(java.lang.String s)Given a string of '(' , ')' and lowercase English characters, remove the minimum number of parentheses ( '(' or ')', in any positions ) so that the resulting parentheses string is valid and return any valid string. Formally, a parentheses string is valid if and only if: It is the empty string, contains only lowercase characters, or It can be written as AB (A concatenated with B), where A and B are valid strings, or It can be written as (A), where A is a valid string.- Parameters:
s
- The Input String- Returns:
- The Valid Parenthesis
-
InvalidParenthesisMinimalAdd
public static final int InvalidParenthesisMinimalAdd(java.lang.String s)Given a string of '(' and ')' parentheses, add the minimum number of parentheses ( '(' or ')', and in any positions ) so that the resulting parentheses string is valid. Formally, a parentheses string is valid if and only if: It is the empty string, or It can be written as AB (A concatenated with B), where A and B are valid strings, or It can be written as (A), where A is a valid string. Given a parentheses string, return the minimum number of parentheses one must add to make the resulting string valid.- Parameters:
s
- Input String- Returns:
- Minimum Number of Parentheses to be added
-
FrequencyBasedWordDecomposition
public static final java.util.List<java.lang.String> FrequencyBasedWordDecomposition(java.util.Map<java.lang.String,java.lang.Integer> wordFrequencyMap, java.lang.String s)Break the given string into words, provided by a given hash-map of frequency of word as word : frequency.- Parameters:
wordFrequencyMap
- Word Frequency Maps
- Input String- Returns:
- Broken Down Sequence of Words
-
GroupAnagrams2
public static final java.util.List<java.util.List<java.lang.String>> GroupAnagrams2(java.lang.String[] wordArray)Given an array of words, group anagrams together.- Parameters:
wordArray
- Array of Words- Returns:
- The Anagram Group List
-
GroupAnagrams
public static final java.util.List<java.util.List<java.lang.String>> GroupAnagrams(java.lang.String[] wordArray)Given an array of words, group anagrams together.- Parameters:
wordArray
- Array of Words- Returns:
- The Anagram Group List
-
NearestCities
public static final java.lang.String[] NearestCities(java.lang.String[] cities, int[] xCoordinateArray, int[] yCoordinateArray, java.lang.String[] queryCities)Company A has Fulfillment Centers in multiple cities within a large geographic region. The cities are arranged on a graph that has been divided up like an ordinary Cartesian plane. Each city is located at an integral (x, y) coordinate intersection. City names and locations are given in the form of three arrays: c, x, and y, which are aligned by the index to provide the city name (c[i]), and its coordinates, (x[i], y[i]). Write an algorithm to determine the name of the nearest city that shares either an x or a y coordinate with the queried city. If no other cities share an xory coordinate, return NONE. If two cities have the same distance to the queried city, q[i], consider the one with an alphabetically smaller name (i.e. 'ab' lt 'aba' lt 'abb') as the closest choice. The distance is denoted on a Euclidean plane: the difference in x plus the difference in y.- Parameters:
cities
- Array of CitiesxCoordinateArray
- Array of City X CoordinatesyCoordinateArray
- Array of City Y CoordinatesqueryCities
- Cities to be Queried- Returns:
- Array of the Nearest Cities
-
SplitIntoUniquePrimes
public static final java.util.List<java.util.List<java.lang.String>> SplitIntoUniquePrimes(java.lang.String number)A company's operations team needs an algorithm that can break out a list of products for a given order. The products in the order are listed as a string and the order items are represented as prime numbers. Given a string consisting of digits [0-9], count the number of ways the given string can be split into prime numbers, which represent unique items in the order. The digits must remain in the order given and the entire string must be used. Write an algorithm to find the number of ways the given string can be split into unique prime numbers using the entire string.- Parameters:
number
- The Input Number- Returns:
- The Sequence List of Unique Primes
-
CollectSameCharacters
public static final java.util.List<java.lang.String> CollectSameCharacters(java.lang.String s)Given a string s of lower-case letters, partition s into as many as parts so that one letter only appear in one part. Return the partitions as a list.- Parameters:
s
- The Input String- Returns:
- List of Same Character Partitions
-
LongestVowel
public static final java.lang.String LongestVowel(java.lang.String s)Given a string of lower characters, remove at most two substrings of any length from the given string such that the remaining string contains vowels('a','e','i','o','u') only. Your aim is to maximize the length of the remaining string. Output the length of remaining string after removal of at most two substrings.- Parameters:
s
- Input String- Returns:
- Longest String after Removal
-
ConstrainedWord
public static final java.lang.String ConstrainedWord(int a, int b, int c)Given a, b, c, find any string of maximum length that can be created such that no 3 consecutive characters are same. There can be at max a 'a', b 'b' and c 'c'.- Parameters:
a
- Count of the Number of 'A'sb
- Count of the Number of 'B'sc
- Count of the Number of 'C's- Returns:
- The Longest Word
-
ConditionalWordList
public static final java.util.List<java.lang.String> ConditionalWordList(java.lang.String s)Given a string s of lower-case letters, find as many sub-strings as possible that meet the following criteria: - no overlap among strings - one letter can only exist in one string. For every letter c in the sub-string, all instances of c must also be in the sub-string - find as many sub-strings as possible - if there are two solutions with the same number of sub-strings, return the one with the smaller total length. Return sub-strings as a list.- Parameters:
s
- Input String- Returns:
- The Conditional Word List
-
MaximumPalindromeProductLength
public static final int MaximumPalindromeProductLength(java.lang.String s)Compute the Maximum Palindrome Product Length- Parameters:
s
- Inout String- Returns:
- Maximum Palindrome Product Length
-
WordConcatenationStartList
public static final java.util.List<java.lang.Integer> WordConcatenationStartList(java.lang.String full, java.util.Set<java.lang.String> subset)Generate the List of Word Concatenation Start- Parameters:
full
- The Full Wordsubset
- The Set of sub-words- Returns:
- The List of Word Concatenation Start
-
PasswordChangeSteps
public static final int PasswordChangeSteps(java.lang.String password)Find the Minimum of Steps to Make the Password Valid- Parameters:
password
- The Input Password- Returns:
- The Minimum of Steps to Make the Password Valid
-
ValidateNumber
public static final boolean ValidateNumber(java.lang.String s)A valid number can be split up into these components (in order): A decimal number or an integer. (Optional) An 'e' or 'E', followed by an integer. A decimal number can be split up into these components (in order): (Optional) A sign character (either '+' or '-'). One of the following formats: One or more digits, followed by a dot '.'. One or more digits, followed by a dot '.', followed by one or more digits. A dot '.', followed by one or more digits. An integer can be split up into these components (in order): (Optional) A sign character (either '+' or '-'). One or more digits. For example, all the following are valid numbers: ["2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789"], while the following are not valid numbers: ["abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53"]. Given a string s, return true if s is a valid number.- Parameters:
s
- The Input Number- Returns:
- TRUE - Number is Valid
-
ShortestWordTransformationSequence
public static final java.util.List<java.lang.String> ShortestWordTransformationSequence(java.util.List<java.lang.String> wordList, java.lang.String beginWord, java.lang.String endWord)A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ... -> sk such that: Every adjacent pair of words differs by a single letter. Every si for 1 leq i leq k is in wordList. Note that beginWord does not need to be in wordList. sk == endWord Given two words, beginWord and endWord, and a dictionary wordList, return all the shortest transformation sequences from beginWord to endWord, or an empty list if no such sequence exists. Each sequence should be returned as a list of the words [beginWord, s1, s2, ..., sk].- Parameters:
wordList
- Word ListbeginWord
- Beginning WordendWord
- End Word- Returns:
- The Transformation Sequence
-
InPlaceWordReversion
public static final java.lang.String InPlaceWordReversion(java.lang.String s)Given an input string, reverse the order of the words. A word is defined as a sequence of non-space characters. The words in the input will be separated by at least one space. Return a string of the words in reverse order concatenated by a single space. Note that the input may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.- Parameters:
s
- Input String- Returns:
- Sting with Reversed Words
-
WildcardPatternMatchingValidation
public static final boolean WildcardPatternMatchingValidation(java.lang.String s, java.lang.String p)Validate the Wild-card Pattern Match- Parameters:
s
- Stringp
- Pattern- Returns:
- TRUE - Wild-card Pattern Match is Successful
-
ToString
public static final java.lang.String ToString(boolean flag)Convert the Boolean Flag to String- Parameters:
flag
- Boolean Flag- Returns:
- String Value
-
main
public static final void main(java.lang.String[] argumentArray)Entry Point- Parameters:
argumentArray
- Argument Array
-