Thursday, 19 September 2024

Most asking Question in Kotlin-coding round | Android

1. How do you reverse a linked list in Java?

fun linkedlistfun() {
var linkedList = linkedSetOf<Int>()
linkedList.add(152)
linkedList.add(33)
linkedList.add(65)
linkedList.add(89)
linkedList.remove(65)

for (i in linkedList) {
print("${i} ")
}

var l1 = linkedList.reversed()
println()
for (i in l1) {
print("${i} ")
}
}

1.Write a Kotlin program to check if a vowel is present in a string.

fun solution(str:String){
val result=str.toLowerCase().matches("(.*[aeiou].*)".toRegex())
println(result)
}
2. How do you swap two numbers without using a third variable in Kotlin?
fun swapNum(a:Int,b:Int){
var n1=a
var n2=b
n1=n1+n2
n2=n1-n2
n1=n1-n2
print("a= $n1 b=$n2")
}

1. Find most repeat number in a array.

fun findMostReptNumber(arr: IntArray){
val map= mutableMapOf<Int,Int>()
for (i in arr){
if (map.containsKey(i)){
map.put(i,map.get(i)!!+1)
} else{
map.put(i,1)
}
}
var maxRept=1
var key=0
for (i in map){
if(i.value>maxRept){
maxRept=i.value
key=i.key
}
}
println("$key :-> $maxRept")
}
Input:val input1= intArrayOf(5,2,5,1,3,4,3,5)
Output: 5->3
2.Merge 2 array in a single array.
fun mergeTwoArray(arr1:IntArray,arr2:IntArray){
var arr= arrayOf<Int>()
for (i in arr1){
arr=arr.plus(i)
}
for (i in arr2){
arr=arr.plus(i)
}
for (i in arr){
print("$i ")
}
}
Input:- val input1= intArrayOf(5,2,5,1,3,4,3)
val input2= intArrayOf(21,11,31,41,51)
Output:-5 2 5 1 3 4 3 21 11 31 41 51 

1.  Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Example 1:

Input: nums = [2,7,11,15], target = 9

Can you guess the output :- [0,1]

//calling 

val input = listOf(2, 11, 7,15)
sumOfNum(input, 9)
fun sumOfNum(list: List<Int>, sum: Int) {

for (i in 0 until list.size) {
for (j in i + 1 until list.size) {
if (list[i] + list[j] == 9) {
println("[$i , $j]")
}
}
}

}

2. Write a Kotlin function that checks if a given string is a palindrome.

A palindrome is a word, phrase, number, or other sequences of characters

that reads the same forward and backward (ignoring spaces, punctuation, and case).

   Input1:- "A man, a plan, a canal, Panama!" - true

   Input2:- "Hello, Supriya" - false

     private fun palindrome(str: String) {

    val input=str.replace(("[ ,!]").toRegex(),"")
var result = ""
for (i in input.length - 1 downTo 0) {
result += input[i]
}
if(result.equals(input,ignoreCase = true)){
println("true")
}else{
println("false")
}
}

3. WAP to reverse string like below :

INPUT -> I LOVE APPLE AUTO

OUTPUT -> AUTO apple LOVE i

fun revStringByWord(str: String) {
val list = str.split(" ")
for (i in list.size - 1 downTo 0) {

if (i % 2 == 0) {
var k = list[i].toLowerCase()
print("$k ")

} else {
print("${list[i]} ")

}
}
}

4. Write a extension function to convert date like below:

Input :"11-22-2022".convertDateFormat("mm-dd-yyyy","yyyy-dd-mm")

Output:- 2022-22-11

fun String.convertDateFormat(original:String,output:String){
val originalFormat=SimpleDateFormat(original)
val requireFormat=SimpleDateFormat(output)
val date:Date
try{
date=originalFormat.parse(this)
val result=requireFormat.format(date)
println(result)
}catch (e:Exception){
println(e.message)
}
}

5. Write a extension function to reverse a string.


calling :

fun main() {
println("raja".rev())
}

main reverse function: 
fun String.rev():String{
return this.reversed()
}

6. Write a Higher order function to check number is prome or not?

call the function from main method:

exGm(1, ::check)
val result=exGm(2, ::check)
println(result)
...............................
fun exGm(num: Int, checkPrime: (Int) -> Boolean):Boolean {
/*var result = checkPrime(num)
println(result)*/
return checkPrime(num)
}

fun check(num: Int): Boolean {
var count = 0
for (i in 2 until num) {
if (num % i == 0) {
count++
}
}
if (count > 0) {
return false
} else
return true

} 

1. Palindrome in Kotlin in given integer.

fun findPalin(num: Int) {
var temp = num
var rem: Int
var sum = 0
while (temp > 0) {
rem = temp % 10
sum = sum * 10 + rem
temp /= 10
}
if (num == sum) {
println("num is Palindrome$sum")
} else {
println("not Palindrome$sum")

}
}
2. An Array of integers is given, both +ve and -ve.You need to find the two elements such 
that their sum is closest to zero.
private fun findCloseNum(arr: IntArray) {
var smallestSum = arr[0] + arr[1]
var sum = 0
var l = 0
var k = 0
for (i in arr.indices) {
for (j in i+1 until arr.size) {
sum = arr[i] + arr[j]
if (abs(smallestSum.toDouble()) > abs(sum.toDouble())) {
smallestSum = sum
l = i
k = j
}
}
}
println("Result are "+arr[l] +","+arr[k])
}
3.Rotated thearray list by given position Input: 
nums = [1,2,3,4,5,6,7], k = 3Output: [5,6,7,1,2,3,4](Rotation from right).
private fun rotationNum(arr: IntArray, k: Int) {
//for roated from right

val result = revUtility(arr, 0, arr.size - k - 1)
val result1 = revUtility(result, arr.size - k, arr.size - 1)
//for rotate from left
    val result = revUtility(arr, 0, k-1)
    val result1 = revUtility(result, k, arr.size - 1)
arrayRev(result1)

}
private fun revUtility(arr: IntArray, l: Int, h: Int): IntArray {
var temp: Int
var l = l
var h = h
while (l < h) {
temp = arr[l]
arr[l] = arr[h]
arr[h] = temp
l++
h--
}
return arr
}
private fun arrayRev(arr: IntArray) {
var temp: IntArray = intArrayOf()

for (i in arr.size - 1 downTo 0) {
temp = temp.plus(arr[i])

}
for (i in temp)
print(" $i ")
}

concept : If we rotating any array from any position like rotation from position
k from right side then output will be like below:
input= 1,2,3,4,5,6,7
pos=1= 7,1,2,3,4,5,6
pos=2= 6,7,1,2,3,4,5
pos=3= 5,6,7,1,2,3,4
pos=4= 4,5,6,7,1,2,3
pos=5= 3,4,5,6,7,1,2

rotation from position k from left side then output will be like below:
input= 1,2,3,4,5,6,7
pos=1= 2,3,4,5,6,7,1
pos=2= 3,4,5,6,7,1,2
pos=3= 4,5,6,7,1,2,3
pos=4= 5,6,7,1,2,3,4
pos=5= 6,7,1,2,3,4,5
3.Palindrome in JAVA in given String.
private fun palindromeString(str: String) {
var temp = ""
for (i in str.length - 1 downTo 0){
temp += str[i]
}
if (str.contentEquals(temp)){
println("Palindrome")
}else{
println("not Palindrome")
}
}
4.Count character repetition in a given string using HashMap in kotlin.
private fun charRept(str:String){
var map= mutableMapOf<Char,Int> ()
for (i in str){
if(map.containsKey(i)){
map.put(i,map.get(i)!!+1)
}else{
map.put(i,1)
}
}
for (k in map)
println("key=${k.key} value=${k.value}")
}
5. Reverse a string.
fun revStr(str:String){
for (c in str.length-1 downTo 0)
print(str[c])
}
6. Check Prime number.
fun checkPrime(num: Int) {
var remSum = 0
for (i in 1..num) {
if(num%i==0) {
remSum++
}
}
if (remSum>2)
println("Not PRime")
else
println("PRime")
}
7. print Fibonacci serice in kotlin.
private fun fibonacci(num:Int){
//0,1,1,2,3,5,8,13,21
var l=0
var k=1
var temp=0
var sum = 1
print(l)
for (i in 0..num){
print(" $sum")
sum=l+k
l=k
k=sum
}

}
8.Find Dublicate Character in a given String in kotlin./emmaroopa=mao
    fun findDubli(str:String){
var map= mutableMapOf<Char,Int>()
for (i in str){
if (map.containsKey(i)){
map.put(i,map.get(i)!!+1)
}else{
map.put(i,1)
}
}
for (k in map){
if(k.value>1){
print(" ${k.key}")
}
}
}
9.Check Armstrong Number in Kotlin.//Armstrong Number :-153 = 1*1*1 + 5*5*5 + 3*3*3 = 153.
fun checkArmstrong(num: Int) {
var rem = 0
var temp = num
var result = 0
while (temp > 0) {
rem = temp % 10
result = result + (rem * rem * rem)
temp = temp / 10
}
if (num == result)
println("Armstrong")
else
println("not Armstrong")
}
10. Factorial in kotlin.
fun factorial(num: Int) {
    //5!=1*2*3*4*5
var result = 1
for (i in 1..num) {
result = result * i
}
println(result)
}
11.WAP in JAVA to find run length encoding if the input is
// "awwwaadxxxw" then output should be :- a1w3a2d1x3w1.
fun runLengthEncoding(str: String) {
var s = str[0]
var sum = 0
var result = ""
for (i in 0..str.length - 1) {
if (str[i].equals(s)) {
sum++
}else{
result = result + s + sum
s=str[i]
sum=1

}
}
println("$result$s$sum")
}
12.In a given alphanumeric string return sum of the digit 0-9 that
appears in the string ignoring all other character.
// Ex: ac2bh3fg12mgf32 output :- 2+3+1+2+3+2 = 13
fun sumOfDigit(str:String){
var sum=0
for (i in str){
if (i.isDigit())
sum += Character.getNumericValue(i)
}
println("sum= $sum")
}
`13.Find peak element in an array. A peak element is an element
if it is not smaller than its neighbours.
// Ex:{10,80,15,2,23,90,67,120,3,134,7} output :- 80,90.120,134.
fun findPeakNum(arr:IntArray){
for (i in 1..arr.size-2) {
if (arr[i]>arr[i-1] && arr[i]>arr[i+1]){
print(" ${arr[i]}")
}
}
}
14.WAP leader in an array. An element is leader  if it is greater than
its its right side of all element.
// Ex: {22,16,17,4,3,5,2} output:- 2,5,17,22.
fun leaderInArray(arr:IntArray){
var largeNum=arr[arr.size-1]
println(largeNum)
for (i in arr.size-2 downTo 0) {
if(largeNum<arr[i]){
largeNum=arr[i]
println(largeNum)

}
}
}
15.Array of 0's and 1sin random order.Segregate 0s on left side and 
1s on right side of the array.Traverse array only once.
    input {0,1,1,0,0,1,0,1,0,1,1}
output{0,0,0,0,0,1,1,1,1,1,1}

fun arrangeZeroOne(arr: IntArray) {
var l = 0
var r = arr.size - 1
var temp = 0
for (i in 0..arr.size - 1) {
while (l < r) {
if (arr[l] == 0) {
l++
} else if (arr[r] == 1) {
r--
} else {
temp = arr[l]
arr[l] = arr[r]
arr[r] = temp
}
}
}
for (i in arr)
print(i)

}
16.Remove adjacent occurrences of 2 same character in a string.
 // input  "abbacca" output= a 
// input = abbaca output= ca
//input = azxxzy output= ay
    fun removeAdjcent(str: String) {
val stack = Stack<Char>()
for (c in str){
if(!stack.isEmpty()&&stack.peek()==c){
stack.pop()
}else{
stack.push(c)
}
}
for (i in stack){
print(i)
}
}

17.Given array {5,2,1,7,2,3} and another Y. 
Find all the pairs whose sum is Y.
fun findPair(arr:IntArray,k:Int){
var sum=0
for (i in arr){
for (j in 1..arr.size-1){
sum=i+arr[j]
if(k==sum){
println("$i , ${arr[j]}")
}
}
}
}
18.WAP to find second Largest from an array.
//val arr = intArrayOf(3,18,2,86,90,70,1)
//output= 86
fun secondLargest(arr:IntArray){
var first=arr[0]
var second=arr[0]
for (i in arr){
if(i>first){
second=first
first=i
}
}
println("$second")
}
19.Check if array has duplicate elements or not?
intArrayOf(12,43,2,1,5,65,5,78,1) output : Array has duplicate element
fun checkDupli(arr:IntArray){
var map= mutableMapOf<Int,Int>()
for (i in arr){
if(map.containsKey(i)){
map.put(i,map.get(i)!!+1)
}else{
map.put(i,1)
}
}
for (i in map){
if (i.value>1){
println("Array has duplicate element")
}
}
}

20.Give an algorithm for finding the element which appears maximum number
of times in array.
input= intArrayOf(12,43,2,1,5,12,65,5,78,12)
output= Max Repeat num is 12
fun findNum(arr:IntArray){
var map= mutableMapOf<Int,Int>()
for (i in arr){
if (map.containsKey(i)){
map.put(i,map.get(i)!!+1)
} else{
map.put(i,1)
}
}
var max=0
var num=0
for (i in map){
if (i.value>max){
max=i.value
num=i.key
}
}
println("Max Repeat num is $num")
}
21.In array find the first element in the array which is repeated.
input:- intArrayOf(12, 43, 2, 1, 5, 12, 65, 5, 78, 12)
output:-First Repeated number is 12
fun firstRepet(arr:IntArray){
    for (i in arr.indices){
for (j in i+1 until arr.size){
if (arr[i]==arr[j]){
println("First Repeated number is ${arr[i]}")
return
}
}
}
}
22.Given an array of n element, find two elements
in the array such that their sum is equal to given element K.
input: intArrayOf(12, 3, 2, 1, 5, 12, 4, 78, 3)
output: Elements are= 3 , 3
Elements are= 2 , 4 Elements are= 1 , 5
fun findElement(array: IntArray,k:Int){
for (i in 0 until array.size){
for (j in i+1 until array.size){
if(array[i]+array[j]==k){
println("Elements are= ${array[i]} , ${array[j]}")
}
}
}
}

23.Given a sorted array A of n element, possibly with duplicates. Find the
index of the first occurrence of a number.
input:- intArrayOf(3,8,5,5,81,98)
output:-first duplicate= 5
fun findElement(array: IntArray) {
for (i in 0 until array.size - 1) {
if (array[i] == array[i + 1]) {
println("first duplicate= ${array[i]}")
return
}
}
}
24. Binary Search
fun binarySearch(arr: IntArray, num: Int): Int {
var low = 0
var high = arr.size - 1
var mid = 0;
while (low <= high) {
mid = low + (high - low) / 2
if (num == arr[mid]) {
return mid
} else if (num > arr[mid]) {
low = mid + 1
} else {
high = mid - 1
}
}
return -1
}
25.Given a sorted array of n integer that has been rotated an unknown
number of times, find how many time array has been rotated.
input:- intArrayOf(11,86,3,5,8)
output: 2
fun findNoOfRotation(array: IntArray){
var num = array[0]
for (i in 0 until array.size){
if (num>array[i]){
println("Array rated by no = $i")
return
}
}
}

26.Separate even and odd number in array. Put all even number first
and then odd number.
input:- intArrayOf(5,2,4,8,1,3,9)
output:- 8 2 4 5 1 3 9 
fun separateEveOdd(array: IntArray) {
var l = 0
var temp=0
var r = array.size - 1
while (l < r) {
if (isEven(array[l])) {
l++
} else if (!isEven(array[r])) {
r--
}else{
temp=array[l]
array[l]=array[r]
array[r]=temp
}
}
for (i in array){
print("$i ")

}

}

fun isEven(num: Int): Boolean {
if (num % 2 == 0) {
return true
} else {
return false
}
}

No comments:

Post a Comment

how to change status bar color in jectpack compose.

 Step1: Go to MainActivity and do following: enableEdgeToEdge ( statusBarStyle = SystemBarStyle .light( Color . Green .h...