Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में ज़िगज़ैग रूपांतरण


मान लीजिए कि स्ट्रिंग "IWANTTOLEARNCODE" जैसी है। यह स्ट्रिंग ज़िगज़ैग तरीके से दी गई पंक्तियों की संख्या n पर लिखी गई है। तो पैटर्न इस तरह दिख रहा है

I

T

A

O
W
N
O
E
R
C
D
A

L

N

E

जब हम इस तरह की लाइन पढ़ते हैं - "ITAOWNOERCDALNE"

इसलिए हमें एक ऐसा मॉड्यूल बनाना होगा जो स्ट्रिंग और पंक्तियों की संख्या लेकर इस तरह का ऑपरेशन कर सके।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे

  • जब n =1 हो, तब s वापस आएं
  • आकार n के स्ट्रिंग्स की एक सरणी बनाएं
  • पंक्ति :=0, और नीचे :=सच
  • i के लिए 0 से लेकर स्ट्रिंग के आकार तक के लिए - 1
    • स्ट्रिंग arr[row] के अंत में s[i] डालें [पंक्ति]
    • यदि पंक्ति =बी -1, तो नीचे:=गलत, अन्यथा जब पंक्ति =0, तो नीचे:=सत्य
    • यदि नीचे सही है, तो पंक्ति को 1 से बढ़ाएं, अन्यथा पंक्ति को 1 से घटाएं
  • उत्तर:=खाली स्ट्रिंग
  • मैं के लिए 0 से n - 1:
      . की सीमा में
    • उत्तर:=उत्तर + गिरफ्तारी[i]
  • वापसी उत्तर

उदाहरण(C++)

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   string convert(string s, int numRows);
};
string Solution::convert(string a, int b) {
   if(b == 1)return a;
   string arr[b];
   int row = 0;
   bool down = true;
   for(int i = 0; i < a.size(); i++){
      arr[row].push_back(a[i]);
      if(row == b - 1) down = false;
      else if(row == 0)down = true;
      if(down) row++;
      else row--;
   }
   string ans = "";
   for(int i = 0; i < b; i++){
      ans += arr[i];
   }
   return ans;
}
main(){
   Solution ob;
   cout << ob.convert("IWANTTOLEARNCODE", 3);
}

इनपुट

"IWANTTOLEARNCODE"
3

आउटपुट

"ITECWNTLANOEAORD"

  1. सी++ में () पर स्ट्रिंग

    सार यह संक्षिप्त ट्यूटोरियल C++ स्ट्रिंग क्लास at() . का एक सिंहावलोकन है स्ट्रिंग से वर्णों के अनुक्रम तक पहुँचने के लिए कार्यक्षमता। आगामी खंड में, एक इच्छुक पाठक स्ट्रिंग क्लास प्रोग्रामिंग उदाहरणों के माध्यम से at() के हेरफेर की पूरी समझ प्राप्त कर सकता है। कार्य। स्ट्रिंग क्लास प्रोग्रामिंग श

  1. सी ++ में एक स्ट्रिंग को टोकन करना

    इस खंड में, हम देखेंगे कि C++ में स्ट्रिंग्स को कैसे टोकननाइज़ किया जाता है। सी में हम वर्ण सरणी के लिए strtok() फ़ंक्शन का उपयोग कर सकते हैं। यहां हमारे पास एक स्ट्रिंग क्लास है। अब हम देखेंगे कि उस स्ट्रिंग से कुछ सीमांकक का उपयोग करके स्ट्रिंग को कैसे काटा जाता है। C++ फीचर का उपयोग करने के लिए,

  1. सी ++ में एक स्ट्रिंग को टोकननाइज़ करें?

    पहला तरीका है, रिक्त स्थान से अलग किए गए शब्दों को पढ़ने के लिए एक स्ट्रिंगस्ट्रीम का उपयोग करना। यह थोड़ा सीमित है लेकिन यदि आप उचित जांच प्रदान करते हैं तो यह कार्य काफी अच्छी तरह से करता है। उदाहरण #include <vector> #include <string> #include <sstream> using namespace std; in