как исправить: нашел подстроку в строке - PullRequest
0 голосов
/ 15 мая 2019

У меня есть эта проблема

strArr is ["aaabaaddae", "aed"], то самая маленькая подстрока N, содержащая символы a, e, и d - это "dae", расположенная в концестрока.Так что для этого примера ваша программа должна вернуть строку dae

strArr is ["aabdccdbcacd", "aad"], тогда наименьшая подстрока N, содержащая все символы в K, будет "aabd", которая расположена вначало строки.Оба параметра будут строками длиной от 2 до 50 символов, и все символы K будут находиться где-то в строке N. Обе строки будут содержать только строчные буквенные символы.

я использовал js, но теперь я пытаюсь использовать swift

Ввод: ["ahffaksfajeeubsne", "jefaa"] Вывод: "aksfaje"

это работает с js

function MinWindowSubstring(strArr){
  var min = null;
  var n = strArr[0];
  var k = strArr[1];
  for (var i = 0; i < n.length; i++) {
    for (var j = i + 1; j <= n.length; j++) {
      var sub = n.slice(i, j);
      if(checkK(sub, k)){
        if (min === null || sub.length < min.length){
          min = sub;
        }
      }
    }
  }
  return min;
}

function checkK(sub, k){
  var h = k.split('');
  for (var i = 0; i < sub.length; i++) {
    var char = sub[i];
    var index = h.indexOf(char);
    if(index > -1){
      h.splice(index, 1);
    }
  }
  if(h.length === 0){
    return true;
  } else {
    return false;
  }
}


console.log(MinWindowSubstring(["aabdccdbcacd", "aad"])); // aabd
console.log(MinWindowSubstring(["ahffaksfajeeubsne", "jefaa"])); // aksfaje

это мой код с swift

func indexChar(str:String, char: Character) -> Int
{
    let index = str.firstIndex(of: char)
    if index?.encodedOffset != nil
    {
        return (index?.encodedOffset)!
    }
    else
    {
        return 0
    }
}

var arrStr = ["ahffaksfajeeubsne", "jefaa"]
var str1 = arrStr[0]
var str2 = arrStr[1]
var arrIndex = [Int]()
for letra in str2
{
    var index =  indexChar(str: str1, char: letra)
    arrIndex.append(index)
}

print(String(Array(str1)[arrIndex.min()!...arrIndex.max()!]))

с js

Ввод: ["ahffaksfajeeubsne", "jefaa"] Вывод: "aksfaje"

с быстрым вводом ["ahffaksfajeeubsne", "jefaa"] выводом ahffaksfaje

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...