इस समस्या में, हमें एक स्ट्रिंग स्ट्रिंग दी जाती है जिसमें केवल वर्ण और अक्षर होते हैं। हमारा काम है एक स्ट्रिंग में सबसे लंबी लंबाई की संख्या का पता लगाना।
समस्या का विवरण: हमें संख्या की लंबाई यानी स्ट्रिंग में लगातार संख्यात्मक वर्ण खोजने की जरूरत है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: str ="code001tutorials34124point"
आउटपुट: 34124
स्पष्टीकरण:
स्ट्रिंग में नंबर हैं
001 - आकार 3
34124 - आकार 5
समाधान दृष्टिकोण
समस्या का एक सरल समाधान है डंक का पता लगाना और संख्या की लंबाई और उसके प्रारंभिक सूचकांक का पता लगाना। हम स्ट्रिंग में प्रत्येक संख्या के लिए प्रारंभिक स्थिति और स्ट्रिंग में वर्णों की संख्या संग्रहीत करेंगे। और अंत में, नंबर वापस कर दें।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; string findLongestNumber(string str, int l) { int count = 0, max = 0, maxLenPos = -1, currPos, currLen, maxLen = 0; for (int i = 0; i < l; i++) { currPos = maxLenPos; currLen = maxLen; count = 0; maxLen = 0; if (isdigit(str[i])) maxLenPos = i; while (isdigit(str[i])) { count++; i++; maxLen++; } if (count > max) { max = count; } else { maxLenPos = currPos; maxLen = currLen; } } return (str.substr(maxLenPos, maxLen)); } int main() { string str = "code001tutorials34124point"; int l = str.length(); cout<<"The longest length number in string is "<<findLongestNumber(str, l); return 0; }
आउटपुट
The longest length number in string is 34124