PROBLEM LINK:

Author: Yash Shah
Tester: Roshan Gupta, Shivam Sarang, Hrishikesh Patel
Editorialist: Yash Shah

EASY-MEDIUM

PROBLEM:

Chef loves coding questions which involves traversing of reversed
Linked List.

But Chef is stuck in a question where he has to print the
first occurrence of the Nth node value from the end of a Singly Linked
List of length L.

Can you help him out of this?

Note: If length of Singly Linked List is less than N print -1.

Input Format:

• First line contains T number of test cases.
• First line contains two space separated integers L, N where L is
length of the linked list and the N is index of the node starting from
end whose value is to be determined.
• Second line contains A1,A2,…AL value of the linked list nodes
starting from the head.

Output Format:

• A single digit result which satisfies the problem.

EXPLANATION:

Sample Test Case:

Input:
3
10 5
100 20 123 342 23 123 3423 343 12 4
7 2
78 90 78 3 7 78 1011
5 6
100 232 9 1003 89

Output:
8
7
-1

• Test Case1: If we traverse 5 elements from end we get 123. And
the first occurrence of 123 is at 2nd index, so from end it is at 8th
index. Hence Result: 8
• Test Case 2: If we traverse 2 elements from end we get 78. And
the first occurrence of 78 is at 0th index, so from end it is 7th index.
Hence Result: 7

SOLUTIONS:

Setter's Solution
``````import sys
import numpy as np
t = int(input())
while t:
ele = 0
arr = list(map(int, sys.stdin.readline().split()))
L, N = arr[0], arr[1]
if L > N:
lst = list(map(int, sys.stdin.readline().split()))
if len(lst) == L:
ele = lst[-N]
arr = np.array(lst)
pos = np.where(arr == ele)[0]
print(len(lst) - pos[0])
else:
lst = list(map(int, sys.stdin.readline().split()))
print(-1)
t -= 1
``````