Amazon Interger - замена слова на «УДАЛЕНО» - PullRequest
0 голосов
/ 20 марта 2020

Я недавно дал интервью Amazon и получил работу. Однако один из вопросов, которые я получил, заставил меня задуматься о производительности / оптимизации.

Вопрос в том, что вы читаете файл журнала или несколько файлов журнала в поисках конфиденциальных данных и хотите заменить конфиденциальные данные. со словом «УДАЛЕНО».

Мой мыслительный процесс: 1) файл или структура данных, содержащая эти конфиденциальные данные (слово из черного списка) 2) просмотрите файл журнала и найдите слово из черного списка. 3) Если в файле найдено слово из черного списка, замените слово на «УДАЛЕНО»

Мой процесс в основном проходил через файл журнала, слово за словом.

код, который я написал, был что-то вроде

replace(String log) {
    HashSet<String> s = new HashSet<>();
    s.add("ted"); //keep adding blacklisted word
    String[] word = log.split(" "); //assumed that log file is separated on string
    //if log files contain other special chracters to be splited on then i would need to handle that
    for(int i = 0; i < log.length(); i++) {
        if(s.contains(word[i]) {
            word[i] = "REDACTED";
        }
    }
}

Меня спросили, что если бы было несколько файлов журнала, как бы вы справились с этим, и это эффективно?

...