Тех собес на middle-senior Android Разработчик в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории Android Разработчик

Посмотреть видео в категории

(2025-07-07)

Задачка 1. Алгоритмическая (String Manipulation)

fun main() {
    println(reverseWords("The minimum SDK version your app will support, defined in build.gradle"))
    println(reverseWords("The    minimum SDK    version your app will    support, defined in build.gradle"))
}

fun reverseWords(str: String?): String? {
    //перевернуть строку
}

Ожидаемый результат:

//gradle.build in defined, support will app your version SDK minimum The
//gradle.build in defined, support    will app your version    SDK minimum    The

Задачка 2. Корутиновая

val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)

fun main() {
    loadAndShowDatas()
}

fun loadAndShowDatas() {
    //отобразить результат без наллов
}

// IO thread
suspend fun loadData1(): String? {
    delay(1000L)
    return "data 1"
}

// IO thread
suspend fun loadData2(): String? {
    delay(1200L)
    return "data 2"
}

// UI thread
suspend fun showData(data1: String, data2: String) {
    if (coroutineContext[ContinuationInterceptor] != Dispatchers.Main) {
        throw IllegalStateException("Invalid dispatcher!")
    }
    println("Data: $data1, $data2")
}

Задачка 3. Алгоритмическая (String Compression)

// Нужно реализовать такой алгоритм сжатия:
// AAAABBBBCC -> 4A4B2C
// ABCDDDDEEE -> ABC5D3E
// AAAAB
// ^
// counter%ref[A]
// AAA
// A
// Complexety O(n)
fun compress(input: String?): String? {
    if (input == null) return null
    if (input.length == 0) return input
    val sb : StringBuilder = StringBuilder(input[0].toString())
    var prevChar = input[0]
    var count = 0
    for (c in input) {
        if (prevChar != c) {
            if (count > 1) {
                sb.append(count)
            }
            sb.append(prevChar)
            count = 1
            prevChar = c
        } else {
            count++
        }
    }
    if (count > 1){
        sb.append(count)
    }
    sb.append(prevChar)
    return sb.toString()
}

Вложения

38_2259_photo.jpg