Câu đố: Code ngắn nhất?

có thể thằng hạng 1 nó ko cần xài std::string t mà đảo thẳng trên x[n] luôn, tiết kiệm được chữ std::string với char(). Mà ko biết làm cách nào :joy:

2 Likes

Rất tò mò không biết nó làm thế nào?

chắc chịu thua thôi :joy:

117 là hạng mấy ?

Ngày mai mới biết được nó code gì?
Anh xem thêm tại đây https://codefights.com/challenge/uvH5mv6iMwm7mwKJs/main

117 là hạng 4 thế giới đó anh :smile:
p/s: Tính đến thời điểm hiện tại :wink:

ế ở chỗ chuyển gì còn có thể ép bớt vài ký tự nữa:
thay vì - 11*(c%4 > 1) thì viết lại thành - c%4 / 3 * 11 bớt được 2 dấu ngoặc đơn :joy:

Anh giỏi thế :blush:
115 kí tự, hạng 3 :sunny:

auto geneticMicroRobots(int n, auto x)
{
    while(n--)
    {
        std::string t;
        for(int c:x[n])
            t=char(149 - c - c%4 / 3 * 11)+t;
        x[n]=t;
    }
    return x;
}

tới đây chắc đầu hàng rồi :joy:

Mong là ngày mai không bị xuống hạng.

code để chình ình trên này ko bị copy mới lại :joy: Trong số mấy người copy có ai nghĩ ra cách ngắn hơn thì chắc rớt thôi :joy:

1 Like

Nếu họ nghĩ được code ngắn hơn từ code mình thì cứ cho họ copy thoải mái :smile:

1 Like

xài

for (auto& s : x)
{
... (int c : s)
s = t;
}

khỏi cần n-- nữa. Vậy tiết kiệm thêm 3 chữ. Mà như vậy thì n dư ra, có thể xài đâu đó. Vẫn hạng 3 :joy:

Cái này gọi là truyền địa chỉ phải không anh?

c thay bằng n, tiết kiệm int

truyền tham chiếu
nếu viết for (auto x : v) thì x là bản copy của v[i]. Còn viết for (auto& x : v) thì x chính là v[i].

đọc thấy tụi nó ko cần ghi auto trong for cũng được.
for (int c : s) ghi thành for (c : s) cũng được. Thêm 3 chữ nữa :joy:. Chỗ khai báo hàm vì ko xài n nên bỏ nó luôn đi.
auto geneticMicroRobots(int, auto x) {

chổ khai báo hàm bắt buộc theo quy định anh ơi.
Code tối ưu đến hiện tại:

auto geneticMicroRobots(int n, auto x)
{
    for (auto& s : x)
    {
        std::string t;
        for(n : s)
            t=char(149 - n - n%4 / 3 * 11)+t;
        s=t;
    }
    return x;
}

Bỏ cái auto& nó cũng nhận đấy :joy:

1 Like
int t, powersOfTwo2(int, int, auto a) {

    for (e: a)
        t |= e;
    return ~t & ++t;
}

phần solution của bài khác nó khai báo int int bỏ chữ n đi cũng được kìa?

Sao vô lý vậy nhỉ?? :confounded:

Trên CodeBlocks nó báo lỗi :frowning:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?