Что Алгоритм является к Разности Двумя Строками таким же образом, который ТАК Делает на Странице Версии?

Пример Kotlin:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.act_signin)

    packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES).apply {
        findViewById<TextView>(R.id.text_version_name).text = versionName
        findViewById<TextView>(R.id.text_version_code).text =
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) "$longVersionCode" else "$versionCode"
    }

    packageManager.getApplicationInfo(packageName, 0).apply{
        findViewById<TextView>(R.id.text_build_date).text =
            SimpleDateFormat("yy-MM-dd hh:mm").format(java.io.File(sourceDir).lastModified())
    }
}

не благодарят:-)

7
задан aronchick 3 September 2009 в 05:56
поделиться

1 ответ

Алгоритм, который вы ищете, - это Самая длинная общая подпоследовательность , он делает большую часть работы за вас.

Схема похожа на эти строки.

  1. Разделить по словам (ввод, вывод)
  2. Вычислить LCS для массива ввода / вывода.
  3. Пройдите через массив и разумно объедините области.

Например, у вас есть:

«привет, мир, это тест»

по сравнению с:

«мистер, привет, мир»

Результатом LCS будет

  • «мистер» +
  • "hello" =
  • "world" =
  • "this" -
  • "is" -
  • "a" -
  • "test" -

Теперь посыпьте специальный соус при наращивании. Вы соединяете нить вместе, не забывая о предыдущем действии. Наивный алгоритм - это просто объединение разделов, которые представляют собой одно и то же действие.

  • «мистер» +
  • «привет, мир» =
  • «это тест» -

Наконец, вы преобразовываете его в html:

<ins>mister</ins> hello world <del>this is a test</del>  

] Конечно, дьявол кроется в деталях:

  • Вам нужно подумать о том, как вы обрабатываете теги
  • Вы сравниваете markdown или html
  • Есть ли какие-либо крайние случаи, когда пользовательский интерфейс перестает иметь смысл.
  • Нужна ли вам особая обработка знаков препинания.
4
ответ дан 7 December 2019 в 14:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: