Tạo số điện thoại codewars python

Đã lâu rồi tôi không thực hiện Thử thách viết mã JavaScript nên tôi nghĩ rằng mình nên đưa nó trở lại vào thứ Sáu tuần này [hãy cho tôi biết nếu bạn thích những thứ này và tôi sẽ thêm một cái mới vào mỗi thứ Sáu]. 😄

Tôi đã tìm kiếm trên Codewars và gặp thử thách Tạo số điện thoại từ một mảng. Đây là những gì nó nói

Viết hàm nhận vào một mảng 10 số nguyên [từ 0 đến 9], trả về một chuỗi các số đó dưới dạng số điện thoại

Thí dụ

________số 8

Như bạn có thể thấy điều này rất dễ, nhưng đôi khi tôi thích thực hiện những thử thách đơn giản này để thư giãn một chút và hy vọng bạn cũng sẽ học được điều gì đó mới. Đó là một tình huống đôi bên cùng có lợi. 😄

Ghi chú. Tôi thực sự khuyên bạn nên tự mình giải quyết thử thách này trước khi tiếp tục. Bạn sẽ học được nhiều hơn bằng cách làm như vậy

Tôi tìm thấy hai giải pháp cho thử thách này

Giải pháp đầu tiên

Đây là "điều hiển nhiên" mà chúng ta sẽ sử dụng các phương thức .slice

function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
0 để lấy ra các giá trị mà chúng ta cần từ mảng giữa các chỉ mục đã chỉ định. Ngoài ra, chúng tôi sẽ sử dụng các ký tự mẫu chuỗi để có mã sạch hơn

function createPhoneNumber[arr] {
    return `[${arr.slice[0, 3].join['']}] ${arr.slice[3, 6].join['']}-${arr.slice[6].join['']}`;
}

Hoặc chúng ta có thể tạo một chuỗi ngay từ đầu bằng cách viết tắt các ký tự

function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
0 và sau đó sử dụng
function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
2 để loại bỏ các ký tự cụ thể

function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}

Giải pháp thứ hai

Đối với điều này, chúng tôi sẽ tạo một

function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
3 sẽ được sử dụng để
function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
4 [chèn] các số bên trong chuỗi. Lưu ý rằng hàm
function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
4 sẽ chỉ tìm và thay thế lần xuất hiện đầu tiên của
function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
1 trong trường hợp này [đó là những gì chúng ta muốn], sau đó nó sẽ chuyển sang
function createPhoneNumber[arr] {
    let str = arr.join[''];
    return `[${str.substring[0, 3]}] ${str.substring[3, 6]}-${str.substring[6]}`;
}
1 tiếp theo trong lần lặp tiếp theo, v.v.

John giữ một bản sao lưu danh bạ điện thoại cá nhân cũ của mình dưới dạng tệp văn bản. Trên mỗi dòng của tệp, anh ta có thể tìm thấy số điện thoại [được định dạng là +X-abc-def-ghij trong đó X là viết tắt của một hoặc hai chữ số], tên tương ứng giữa < và > và địa chỉ

Thật không may, mọi thứ đều bị trộn lẫn, mọi thứ không phải lúc nào cũng theo cùng một thứ tự, các dòng lộn xộn với các ký tự không phải chữ và số

Ví dụ về các dòng danh bạ điện thoại của John

“/+1-541-754-3010 156 Alphand_St. \N"

" 133, Xanh, Rd. NY-56423 ;+1-541-914-3010. \N"

" +48-421-674-8974 Qua Quirinal Roma\n"

Bạn có thể giúp John với một chương trình, với các dòng trong danh bạ điện thoại của anh ấy và một số điện thoại sẽ trả về một chuỗi cho số này không. “Điện thoại => số, Tên => tên, Địa chỉ => địa chỉ”

ví dụ

s = “/+1-541-754-3010 156 Alphand_St. \ n 133, Màu xanh lá cây, Rd. NY-56423 ;+1-541-914-3010. \N"

phone[s, “1-541-754-3010”] sẽ trả về “Phone => 1-541-754-3010, Name => J Steeve, Address => 156 Alphand St. ”

Có thể xảy ra trường hợp, đối với một vài số điện thoại, có nhiều người cho một số điện thoại - nói nb-, sau đó

devsoo

Theo dõi

ngày 1 tháng 1 năm 2020

·

1 phút đọc

mật mã 05. Tạo số điện thoại

[Chi tiết]
Viết một hàm chấp nhận một mảng gồm 10 số nguyên [từ 0 đến 9], trả về một chuỗi các số đó ở dạng số điện thoại.

createPhoneNumber[[1,2,3,4,5,6,7,8,9,0]] // returns "[123] 456-7890"

Định dạng trả về phải chính xác để hoàn thành thử thách này.
Đừng quên khoảng trắng sau dấu ngoặc đơn đóng.

[Giải pháp của tôi]

Tôi không nghĩ, tôi có thể nối mảng trước.
Nếu tham gia mảng trước thì tôi không phải dùng regex.

function createPhoneNumber[numbers]{
return `
[${numbers.slice[0,3].join[].replace[/,/g, '']}]
${numbers.slice[3,6].join[].replace[/,/g,'']}
-${numbers.slice[6].join[].replace[/,/g, '']}
`;
}

[Giải Pháp Thông Minh1]

Giải pháp này giúp nối mảng ngay lập tức.
Vì vậy, Giải pháp này chỉ sử dụng Phương thức chuỗi con.
Thật tuyệt.

function createPhoneNumber[numbers]{
numbers = numbers.join[''];
return '[' + numbers.substring[0,3] + ']'
+ numbers.substring[3, 6]
+ '-'
+ numbers.substring[6];
}

[Giải Pháp Thông Minh2]

Giải pháp này tạo định dạng đầu tiên.
Vì vậy, định dạng “x” thay thế chỉ số mảng số bằng cách sử dụng vòng lặp.

function createPhoneNumber[numbers]{
var format = "[xxx] xxx-xxxx";
for [var i=0; i

Chủ Đề