Kotlin Strings
Sun Jan 07 2024 12:49:36 GMT+0000 (Coordinated Universal Time)
Saved by @Palsaurabh63
1.
fun findDuplicates(input: String) {
val charFrequencyMap = mutableMapOf<Char, Int>()
for (char in input) {
charFrequencyMap[char] = charFrequencyMap.getOrDefault(char, 0) + 1
}
println("Duplicate characters in the string:")
for ((char, frequency) in charFrequencyMap) {
if (frequency > 1) {
println("$char - $frequency times")
}
}
}
fun main() {
val testString = "programming"
findDuplicates(testString)
}
2.
fun reverseString(input: String): String {
val charArray = input.toCharArray()
val reversedCharArray = CharArray(charArray.size)
for (i in charArray.indices) {
reversedCharArray[i] = charArray[charArray.size - 1 - i]
}
return String(reversedCharArray)
}
fun main() {
val originalString = "Hello, Kotlin!"
val reversedString = reverseString(originalString)
println("Original String: $originalString")
println("Reversed String: $reversedString")
}
3.
fun areAnagrams(str1: String, str2: String): Boolean {
// Remove spaces and convert to lowercase for case-insensitive comparison
val cleanedStr1 = str1.replace("\\s".toRegex(), "").toLowerCase()
val cleanedStr2 = str2.replace("\\s".toRegex(), "").toLowerCase()
// Check if the lengths are the same
if (cleanedStr1.length != cleanedStr2.length) {
return false
}
// Create character frequency maps
val charFrequency1 = mutableMapOf<Char, Int>()
val charFrequency2 = mutableMapOf<Char, Int>()
// Update character frequencies for str1
for (char in cleanedStr1) {
charFrequency1[char] = charFrequency1.getOrDefault(char, 0) + 1
}
// Update character frequencies for str2
for (char in cleanedStr2) {
charFrequency2[char] = charFrequency2.getOrDefault(char, 0) + 1
}
// Compare character frequencies
return charFrequency1 == charFrequency2
}
fun main() {
val string1 = "listen"
val string2 = "silent"
if (areAnagrams(string1, string2)) {
println("$string1 and $string2 are anagrams.")
} else {
println("$string1 and $string2 are not anagrams.")
}
}
4.
fun generatePermutations(input: String, current: String = "", result: MutableList<String>) {
if (input.isEmpty()) {
result.add(current)
return
}
for (i in input.indices) {
val remaining = input.substring(0, i) + input.substring(i + 1)
generatePermutations(remaining, current + input[i], result)
}
}
fun findAllPermutations(input: String): List<String> {
val result = mutableListOf<String>()
generatePermutations(input, "", result)
return result
}
fun main() {
val testString = "abc"
val permutations = findAllPermutations(testString)
println("Permutations of $testString:")
for (permutation in permutations) {
println(permutation)
}
}
5.
fun containsOnlyDigits(input: String): Boolean {
for (char in input) {
if (char !in '0'..'9') {
return false
}
}
return true
}
6.
fun findDuplicates(input: String): List<Char> {
val charFrequencyMap = mutableMapOf<Char, Int>()
val duplicates = mutableListOf<Char>()
for (char in input) {
charFrequencyMap[char] = charFrequencyMap.getOrDefault(char, 0) + 1
if (charFrequencyMap[char] == 2) {
duplicates.add(char)
}
}
return duplicates
}
7.
fun countVowelsAndConsonants(input: String): Pair<Int, Int> {
val vowels = "aeiouAEIOU"
var vowelCount = 0
var consonantCount = 0
for (char in input) {
if (char.isLetter()) {
if (char.toLowerCase() in vowels) {
vowelCount++
} else {
consonantCount++
}
}
}
return Pair(vowelCount, consonantCount)
}
8.
fun findCharOccurrences(input: String, targetChar: Char): Int {
return input.count { it == targetChar }
}
9.
fun firstNonRepeatedChar(input: String): Char? {
val charFrequencyMap = mutableMapOf<Char, Int>()
for (char in input) {
charFrequencyMap[char] = charFrequencyMap.getOrDefault(char, 0) + 1
}
for (char in input) {
if (charFrequencyMap[char] == 1) {
return char
}
}
return null
}
10.
fun reverseWords(sentence: String): String {
val words = mutableListOf<String>()
var currentWord = StringBuilder()
for (char in sentence) {
if (char.isWhitespace()) {
if (currentWord.isNotEmpty()) {
words.add(currentWord.toString())
currentWord.clear()
}
} else {
currentWord.append(char)
}
}
if (currentWord.isNotEmpty()) {
words.add(currentWord.toString())
}
return words.reversed().joinToString(" ")
}
fun main() {
val testSentence = "Hello Kotlin World"
val reversedSentence = reverseWords(testSentence)
println("Original Sentence: $testSentence")
println("Reversed Words: $reversedSentence")
}



Comments