मेरे पास एक फ़ाइल है, जिसमें से मुझे प्रत्येक क्वेरी लेनी है और Alt_from और Alt_to मानों की जांच करनी है। यदि Alt_from और Alt_to के मान ओवरलैप करते हैं, तो उच्चतम स्कोर के साथ पंक्ति की जांच करें और इसे गैर-अतिव्यापी मूल्यों के साथ एक फ़ाइल में प्रिंट करें।
इनपुट फ़ाइल:
Sr.No query score ALIfrom ALIto
1 g1 135.2 93 231
2 g182 40.5 244 296
3 g182 45.4 247 311
4 g182 53.1 302 348
5 g182 50.6 305 362
6 g182 52.9 354 396
7 g182 24.9 357 397
8 g19 45.2 19 181
9 g19 166.8 19 208
10 g19 182.3 27 258
11 g22 94.5 46 139
12 g22 101.3 141 221
13 g22 66.7 230 353
14 g22 36.8 230 391
15 g266 57.7 47 127
16 g266 12.6 343 375
17 g266 17.8 348 375
अपेक्षित उत्पादन:
Sr.No query score ALIfrom ALIto
1 g1 135.2 93 231
2 g182 40.5 244 296
4 g182 53.1 302 348
6 g182 52.9 354 396
10 g19 182.3 27 258
11 g22 94.5 46 139
12 g22 101.3 141 221
13 g22 66.7 230 353
15 g266 57.7 47 127
17 g266 17.8 348 375
मैंने पर्ल का उपयोग करने की कोशिश की लेकिन यह सही ओवरलैपिंग मूल्यों की जांच नहीं करता है। ओवरलैप से मेरा मतलब है कि उदाहरण के लिए, क्वेरी g1 (Sr.no 2) में Alt_from और Alt_to मानों की सीमा 150 से 200 है और क्वेरी g1 (Sr.no 3) में Alt_from और Alt_to मानों की सीमा 160 से 190 है। Sr.no 3 के मान Sr.no 2 में मानों की श्रेणी में आते हैं, यह ओवरलैप है। ऐसे मामले में कोड को अपने स्कोर की जांच करनी चाहिए और उच्चतम स्कोर वाले को लेना चाहिए। जैसा कि आप अपेक्षित आउटपुट में देख सकते हैं, Sr.no 2 के साथ पंक्ति कम स्कोर के कारण हटा दी जाती है और Sr.no 3 को लिया जाता है क्योंकि इसमें उच्च स्कोर होता है