Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите переписать код javascript в с#.

Владимир Величко Ученик (26), закрыт 4 года назад
base.js

export default function initialize_matrix(rows, cols){
let matrix = [];
for (let i = 0; i < rows.length; i++){
matrix.push(Array(cols.length).fill(0));
}
return matrix;
}
diff_two_words.js

import initialize_matrix as base from "./base.js";

export default function diff( firstWord, secondWord ){
let arr1 = firstWord.split('');
let arr2 = secondWord.split('');
let matrix = initialize_matrix(arr1, arr2);
for (let i = 0; i < arr1.length; i++){
for (let j = 0; j < arr2.length; j++){
if( arr1[i] == arr2[j] ){
if( i > 0 && j > 0){
matrix[i][j] = matrix[i - 1][j - 1] + 1;
}else{
matrix[i][j] = 1;
}
} else {
if( i > 0 && j > 0){
matrix[i][j] = Math.max(matrix[i - 1][j], matrix[i][j - 1]);
}else{
matrix[i][j] = 0;
}
}
}
}
return matrix[arr1.length-1][arr2.length-1];
}
Лучший ответ
Jurijus Zaksas Искусственный Интеллект (424908) 4 года назад
Примерно так (если я правильно понял, что там происходит):

public static T[,] InitializeMatrix< T >(int rows, int cols)
{
return new T[cols, rows];
}

public static int diff(string firstWord, string secondWord)
{
char[] arr1 = firstWord.ToCharArray();
char[] arr2 = secondWord.ToCharArray();
int[,] matrix = InitializeMatrix< int >(arr1.Length, arr2.Length);
for (int i = 0; i < arr1.Length; i++)
{
for (int j = 0; j < arr2.Length; j++)
{
if (arr1[i] == arr2[j])
{
if (i > 0 && j > 0)
{
matrix[i,j] = matrix[i - 1, j - 1] + 1;
}
else
{
matrix[i, j] = 1;
}
}
else
{
if (i > 0 && j > 0)
{
matrix[i, j] = Math.Max(matrix[i - 1, j], matrix[i, j - 1]);
}
else
{
matrix[i, j] = 0;
}
}
}
}
return matrix[arr1.Length - 1, arr2.Length - 1];
}
Владимир ВеличкоУченик (26) 4 года назад
Спасибо вам, алгоритм должен работать например: вводным поисковике слово не правильно выдать другое слово правильное.
В данном случае просто проверка алгоритм c 2 слов.
Читал книгу "Грокаем Алгоритмы" там только алгоритм полный на javascript.
Остальные ответы
Никита Белоусов Мастер (1985) 4 года назад
Это ответы майл ру, а не форум программистов js
Похожие вопросы