1369B - AccurateLee - CodeForces Solution


greedy implementation strings *1200

Please click on ads to support us..

Python Code:

t = int(input())
while t:
    n = int(input())
    s = input()
    if s.count("10"):
        lef,rig,sw = 1,1,1
        for i in range(n):
            if s[i] == '1':
                lef = i
                break
        for i in range(n-1,0,-1):
            if s[i]=='0':
                rig=i
                break
        st=s[:lef] + '0' + s[rig+1:]
        print(st)
    else:
        print(s)
    t -= 1

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long 
ll const inf = 1e17+1;
ll const M = 1e5+10;
ll const N = 100001;
const int mod = 1e9+7;
ll dx[8]={1,0,-1,0,1,-1,-1,1};
ll dy[8]={0,1,0,-1,1,-1,1,-1};

ll gcd(ll a, ll b)
{
    return b==0 ? a : gcd(b,a%b);
}

ll lcm(ll a, ll b) {
    return (a*b/gcd(a,b));
}   

void solve(int te) {
    // cout << "Case #" << te << ": ";
    ll n; cin>>n;

    string s; cin>>s;
    
    string ans;

    ll sw = 1;
    for(ll i=1;i<n;i++) {
        if(s[i] < s[i-1])sw = 0;
    }

    if(sw) {
        cout<<s<<endl;
        return;
    }

    for(ll i=0;i<n;i++) {
        if(s[i]=='1')break;
        ans.push_back(s[i]);
    }
    ans.push_back('0');

    for(ll i=s.size()-1;i>=0;i--) {
        if(s[i]=='0')break;
        ans.push_back(s[i]);
    }
    
    cout<<ans<<endl;
}

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(nullptr);
    // #ifndef ONLINE_JUDGE
    // freopen("input.txt","r",stdin);
    // freopen("output.txt","w",stdout);
    // #endif
    int T;
    cin >> T;
    for(int t = 1; t <= T; t++)solve(t); 
    // solve(1);
}





Comments

Submit
0 Comments
More Questions

528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST
445. Add Two Numbers II
442. Find All Duplicates in an Array
437. Path Sum III
436. Find Right Interval
435. Non-overlapping Intervals
406. Queue Reconstruction by Height
380. Insert Delete GetRandom O(1)
332. Reconstruct Itinerary
368. Largest Divisible Subset
377. Combination Sum IV
322. Coin Change
307. Range Sum Query - Mutable