Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let alphabet = "abcdefghijklmnopqrstuvwxyz";
- let str = "abcdeaklmna";
- let k = 4;
- function longestSubstring(str, k){
- if(k <= 0){
- return "Error using function substring!";
- }
- let answer = "";
- for(let i=0; i<str.length-1; i++){
- // 1st index = i
- // Next variable named "permanent answer" will be in relation of this "i" index
- let permanentAnswer = str[i];
- for(let j=i+1; j<str.length; j++){
- // 2nd index = j
- // For every new letter after the first one, I have to check if its position in alphabet
- // is between the limits. I have to compare it with ALL the previous letters in my permanentAnswer
- let hits = 0;
- for(let k=0; k<permanentAnswer.length; k++){
- if( Math.abs(alphabet.indexOf(str[j]) - alphabet.indexOf(permanentAnswer[k])) <= (k-1) ){
- hits++;
- }
- }
- // Now, "hits" must be equal to length of my permanent answer
- // This means that the letters are not too far apart
- if(hits === permanentAnswer.length){
- permanentAnswer += str[j]
- }
- else{
- // No, need to walk more in my "str" string after the 1st failure
- break;
- }
- }
- // Now, I have the permanent "longest answer" beginning from "i" index
- if(permanentAnswer.length >= answer.length){
- answer = permanentAnswer;
- }
- }
- return answer;
- }
- // MAIN FUNCTION
- console.log(longestSubstring(str, k));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement