እንደ አማራጭ x እና y ክስተቶች የሁለትዮሽ ሕብረቁምፊን እንደገና ያዘጋጁ  


የችግር ደረጃ መካከለኛ
ውስጥ በተደጋጋሚ ተጠየቀ የተከማቸ Cisco Citrix ረጅም መንገድ ተንሸራሸረ IBM መረጃ ጠርዝ Pinterest Roblox tesla
ሕብረቁምፊ

የችግሩ መግለጫ  

ሁለትዮሽ ተሰጥተሃል እንበል ክር፣ እና ሁለት ቁጥሮች x እና y። ሕብረቁምፊው 0 ዎችን እና 1 ዎችን ብቻ ያካትታል ፡፡ ችግሩ “የሁለትዮሽ ሕብረቁምፊን እንደ ተለዋጭ x እና y ክስተቶች ያስተካክሉ” የሚለው 0 ን x x ጊዜ ይመጣል ⇒ 1 ይመጣል y times ⇒ እንደገና 0 ይመጣል x times comes 1 ይመጣል y times እና ስለዚህ እስከ 0s or 1s ተጠናቅቀዋል ፡፡ ከዚያ የቀረውን የሕብረቁምፊ ክፍል ያጣምሩት እና ያትሙት።

ለምሳሌ  

str = “01101”,

x = 1

y = 1
01011

ማስረጃ

መጀመሪያ 0 ጊዜ የታተመ x ጊዜ ፣ ​​ከዚያ 1 ታተመ y ጊዜ ፣ ​​ከዚያ 0 x ጊዜ ከዚያ እንደገና 1 y times ፣ ግን አሁን 0 ቀርቷል ስለሆነም 1 የሆነውን የቀረው የሕብረቱን ክፍል እናጠናቅቃለን ፡፡

እንደ አማራጭ x እና y ክስተቶች የሁለትዮሽ ሕብረቁምፊን እንደገና ያዘጋጁ

 

እንደ አማራጭ x እና y ክስተቶች የሁለትዮሽ ሕብረቁምፊን እንደገና ለማቀናጀት ስልተ ቀመር  

1. Count the total number of 0s and 1s.
2. Make a loop till the count of either of zeros or ones will be 0.
  1. Traverse in an individual loop for zeroCount, till the value x is reached and till the zeroCount will not be 0, print the 0, and decrease the value of zeroCount by 1.
  2. Traverse in an individual loop for onesCount, till the value y is reached and till the onesCount will not be 0, print the 1, and decrease the value of onesCount by 1.

ማስረጃ  

ባለ ሁለትዮሽ ክር እንደሰጠነው ግብዓት ፡፡ ያ የሁለትዮሽ ገመድ እንደ ስያሜው ብቻ 0 ዎችን እና 1 ቶችን ያቀፈ ነው። እኛ ደግሞ በሁለት እሴቶች x እና y ተሰጥቶናል። በተከታታይ በ ‹y› ጊዜያት የውጤት ገመድ x ጊዜ እና በ 0 ቶች ውስጥ ያሉትን 1 ቶች መደጋገም አለብን ፡፡ እና የቀረው ሕብረቁምፊ ካለ ከዚያ ቀሪውን ገመድ በዚህ የውጤት ገመድ ያጣምሩ። ለዚህም እኛ ለዜሮ እና ለሁለቱም ቁጥሮችን እና ዱካዎችን ለማቆየት ለሁለቱም ለዜሮ ቁጥር እና ለ ‹OneCount› ቀለል ያለ ቆጣሪ ብቻ አንጠቀምም ፡፡

ተመልከት
ትሪን በመጠቀም ረጅሙ የጋራ ቅድመ ቅጥያ

እያንዳንዱን ፊደል ሕብረቁምፊን እናቋርጣለን ፡፡ እያንዳንዱ ፊደል በሕብረቁምፊ መልክ ወይ 0 ወይም 1 ይሆናል ፡፡ እና በተጠቀሰው ገመድ ውስጥ ምን ያህል ዜሮዎች እንደሆኑ እና ምን ያህል እንደሆኑ እንቆጥራለን? የዜሮዎች ቁጥር በዜሮ ቁጥር ውስጥ ይቀመጣል የአንዱም ቁጥር በ ‹OneCount› ውስጥ ይቀመጣል ፡፡ እነዚህ ሁለት ተለዋዋጮች ሥራዎችን ከሠራን በኋላም እንኳ የዜሮዎችን እና የአንዱን ቁጥር ይይዛሉ ፡፡

የጠቅላላውን የዜሮዎች ብዛት እና በአንድ ክር ውስጥ ካገኙ በኋላ ፡፡ ቀለበቱ እስከ ዜሮ ቁጥሩ ወይም እስከሚሆን ድረስ ቀለበቱ እስከሚቀጥልበት ሁኔታ ጋር አንድ ሉፕ እንጀምራለን ፡፡ በዚያ ዑደት ውስጥ እኛ ለዜሮ ቁጥር እና ለየየየየየ የየ የየየየየየየየየ የየየየየየየ የየየየየየየ የየየየየየየየ የየየየየየየየየ የየየየየየየ የየየየየየየየየየየ የየየየየየየየየየየየየየየ የየየየየየየየየየየ የየየየየየየየየየየ የየየየየየየየየ የየየየየየየየየ የየየየየየየየየ የየየየየየየየየየየ የየየየየየየየየየየ የየየየየየየየየ የየየየየየየየየ የየየየየየየየየየየ የየየየየየየየየ የየየ እሴት በአንድ ዙር ውስጥ ደርሷል በዚህ ጊዜ ‹0› ን እያተምን እና የዜሮ ቁጥር ዋጋን በመቀነስ በ x ጊዜ እናተም ፡፡ እና ከዚያ በኋላ '0' y ጊዜዎችን የሚያተም ሌላ ሉፕ ይከናወናል። ከዚያ የአንዱን ቁጥር ዋጋ መቀነስዎን ይቀጥሉ። በዚህ የተቀረው ገመድ ላይ ተጽዕኖ አይኖረውም እናም የተፈለገውን ውጤት እናገኛለን ፡፡

ኮድ  

እንደ አማራጭ x እና y ክስተቶች የሁለትዮሽ ሕብረቁምፊን እንደገና ለማዘጋጀት የ C ++ ኮድ

#include<iostream>

using namespace std;

void arrangeZeroesAndOnes(string str, int x, int y)
{
    int zeroCount = 0;
    int onesCount = 0;
    int len = str.length();

    for (int i = 0; i < len; i++)
    {
        if (str[i] == '0')
            zeroCount++;
        else
            onesCount++;
    }
    while (zeroCount > 0 || onesCount > 0)
    {
        for (int j = 0; j < x && zeroCount > 0; j++)
        {
            if (zeroCount > 0)
            {
                cout << "0";
                zeroCount--;
            }
        }
        for (int j = 0; j < y && onesCount > 0; j++)
        {
            if (onesCount > 0)
            {
                cout << "1";
                onesCount--;
            }
        }
    }
}
int main()
{
    string str = "01101";
    int x = 1;
    int y = 1;
    arrangeZeroesAndOnes(str, x, y);
    return 0;
}
01011

እንደ አማራጭ x እና y ክስተቶች የሁለትዮሽ ሕብረቁምፊን እንደገና ለማዘጋጀት የጃቫ ኮድ

class arrangeBinaryString
{
    static void arrangeZeroesAndOnes(String str, int x, int y)
    {
        int zeroCount = 0;
        int onesCount = 0;
        int len = str.length();

        for (int i = 0; i < len; i++)
        {
            if (str.charAt(i) == '0')
                zeroCount++;
            else
                onesCount++;
        }

        while (zeroCount > 0 || onesCount > 0)
        {
            for (int j = 0; j < x && zeroCount > 0; j++)
            {
                if (zeroCount > 0)
                {
                    System.out.print ("0");
                    zeroCount--;
                }
            }
            for (int j = 0; j < y && onesCount > 0; j++)
            {
                if (onesCount > 0)
                {
                    System.out.print("1");
                    onesCount--;
                }
            }
        }
        System.out.println();
    }
    public static void main (String[] args)
    {
        String str = "01101";
        int x = 1;
        int y = 1;
        arrangeZeroesAndOnes(str, x, y);

    }
}
01011

ውስብስብነት ትንተና  

የጊዜ ውስብስብነት

ሆይ (n) የት “N” የሕብረቁምፊው ርዝመት ነው። እዚህ ክራፉን ከህብረቁምፊው ርዝመት ጋር እኩል አደረግን ፡፡ በተወሰነ መንገድ ሕብረቁምፊውን እንደገና እንድናስተካክል ይጠበቅብናል ፡፡ በመስመራዊ ውስብስብነት እንዲሠራ ያደረጉትን ሁሉንም ቁምፊዎች ማተም ነበረብን።

ተመልከት
ግለሰባዊ ቃላትን ተገላቢጦሽ

የቦታ ውስብስብነት

ኦ (1) ፣ ምክንያቱም አዲሱን ገመድ አናከማችም ፡፡ እኛ በቀላሉ የአዲሱን ገመድ ንጥረ ነገሮች እያተምነው ነው። ስለዚህ ይህ ክዋኔ ምንም ቦታ አያስከፍለንም ፡፡ እናም ስለዚህ ለ ‹አልጎሪዝም› የቦታ ውስብስብነት ራሱ ቋሚ ነው። መላው ፕሮግራም ግብዓት ለማከማቸት ኦ (ኤን) ቦታን የሚፈልግ ቢሆንም ፡፡