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
Câu đố: Code ngắn nhất?
Rất tò mò không biết nó làm thế nào?
chắc chịu thua thôi
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
p/s: Tính đến thời điểm hiện tại
ế ở 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
Anh giỏi thế
115 kí tự, hạng 3
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
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 Trong số mấy người copy có ai nghĩ ra cách ngắn hơn thì chắc rớt thôi
Nếu họ nghĩ được code ngắn hơn từ code mình thì cứ cho họ copy thoải mái
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
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 . 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
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ỉ??
Trên CodeBlocks nó báo lỗi