मान लीजिए कि हमारे पास एक स्ट्रिंग s है। हमें सभी शब्दों को लंबवत रूप से उसी क्रम में खोजना है जिसमें वे s में दिखाई देते हैं। यहां शब्दों को स्ट्रिंग्स की सूची के रूप में वापस किया जाता है, जब आवश्यक हो तो हमें रिक्त स्थान के साथ पूरा करना होगा। (पिछली जगहों की अनुमति नहीं है)। प्रत्येक शब्द केवल एक कॉलम पर रखा जाएगा और एक कॉलम में केवल एक ही शब्द होगा। इसलिए यदि इनपुट स्ट्रिंग "आप कैसे हैं" है, तो आउटपुट ["HAY", "ORO", "WEU"]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
s :=रिक्त स्थान से विभाजित स्ट्रिंग्स की एक सूची बनाएं, एक खाली सरणी x बनाएं, पंक्ति =0 सेट करें
-
प्रत्येक शब्द I में s के लिए, पंक्ति सेट करें:=पंक्ति की अधिकतम और i की लंबाई
-
col:=s की लंबाई
-
एक सरणी बनाएं और खाली स्ट्रिंग से भरें, और इसका आकार पंक्ति है
-
I के लिए 0 से col - 1 तक की श्रेणी में
-
जे:=0
-
जबकि j <लंबाई की s[i]
-
जबकि मैं - उत्तर की लंबाई [जे]> =1, उत्तर करें [जे]:=उत्तर [जे] ""
-
ans[j] :=ans[j] concatenate s[i, j]
-
j को 1 से बढ़ाएँ
-
-
-
वापसी उत्तर
उदाहरण (पायथन)
आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -
class Solution(object): def printVertically(self, s): s = s.split(" ") x = [] row = 0 for i in s: row = max(row, len(i)) col = len(s) ans = ["" for i in range(row)] j = 0 for i in range(col): j = 0 while j < len(s[i]): #print(j, i) while i - len(ans[j]) >= 1: ans[j] += " " ans[j] += s[i][j] j += 1 return ans ob = Solution() print(ob.printVertically("HOW ARE YOU")) print(ob.printVertically("TO BE OR NOT TO BE"))
इनपुट
"HOW ARE YOU" "TO BE OR NOT TO BE"
आउटपुट
["HAY","ORO","WEU"] ["TBONTB","OEROOE"," T"]