bởi nghệ thuật Đảo ngược một chuỗi hoặc đảo ngược một số là một trong những câu hỏi phổ biến được hỏi tại các cuộc phỏng vấn lập trình. Hãy cùng xem cách thực hiện điều này. Ví dụ. Các ví dụ sử dụng hàm mũi tên và hàm JS thông thường
Ảnh của Chuttersnap trên unplashRules/Limitations::
0becomes // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
1 // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
0becomes // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
1// num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
- Bất kỳ số 0 hàng đầu nên được loại bỏ.
Ví dụ.
2 trở thành // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
3 & không // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
4 // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
// num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
2 becomes // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
3 & not // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
4- Hàm có thể chấp nhận phao hoặc số nguyên.
Ví dụ.
5 trở thành // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
6 // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
// num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
5 becomes // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
6- Hàm sẽ trả về số nguyên như số nguyên.
Ví dụ.
7 trở thành // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
8 & không // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
9 // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
// num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
7 becomes // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
8 & not // num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
9Giải quyết bằng hàm mũi tên:
const reversedNum = num => parseFloat[num.toString[].split[''].reverse[].join['']] * Math.sign[num]
Giải quyết với một chức năng thông thường:
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
Sự khác biệt giữa hàm mũi tên & chức năng chính quy:
Trong ví dụ này, sự khác biệt duy nhất giữa hàm mũi tên và hàm chính quy là chức năng chính quy cần cung cấp giá trị
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
0 rõ ràng.Các hàm mũi tên có giá trị
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
0 ngầm - nếu chúng có thể được viết trong một dòng, mà không cần niềng răng ____.Hãy để phá vỡ các bước xuống:
- Chuyển đổi số thành chuỗi
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
3 Chuyển đổi số đã cho thành một chuỗi. Chúng tôi làm điều này để chúng tôi có thể sử dụng chức năng // num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
4 trên nó tiếp theo.let num = -5432100
num.toString[]
// num = '-5432100'
- Chia chuỗi thành một mảng
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
5 Chuyển đổi chuỗi thành một mảng các ký tự. Chúng tôi làm điều này để chúng tôi có thể sử dụng hàm đảo ngược mảng [không hoạt động trên một chuỗi].// num = '-5432100'
num.split['']
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
- Đảo ngược mảng
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
6 đảo ngược thứ tự của các mục trong mảng.// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
- Tham gia lại vào một chuỗi
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
7 Lắp lại các ký tự đảo ngược thành một chuỗi.// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
- Phân tích giá trị đầu vào vào số điểm nổi: the input value into a floating point number:
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
8 Chuyển đổi // num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
num.reverse[]
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
9 thành một chiếc phao từ một chuỗi.// num = '0012345-'
parseFloat[num]
// num = 12345
Lưu ý: Cuối cùng, ____ 50run [mặc dù nó nằm trên dòng đầu tiên của hàm] trên số đảo ngược và loại bỏ bất kỳ số 0 hàng đầu.:
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
0runs in the end [even though it is on the first line of the function] on the reversed number and removes any leading zeroes.- Nhân nó với dấu hiệu của số gốc - để duy trì giá trị âm.
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
1 nhân số với dấu hiệu của số ban đầu được cung cấp.// original value of num = -5432100
// num = 12345
num * Math.sign[-5432100]
// num = -12345
Và bạn có nó rồi đấy!
Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu
15
Đã trả lời ngày 4 tháng 1 lúc 10:10
Learn more.
Giải pháp của tôi để đảo ngược một chuỗi:
Đã trả lời ngày 29 tháng 6 năm 2018 lúc 16:23
Làm cách nào để đảo ngược một số trong JavaScript?Jun 27, 2016 at 12:14
3
JavaScript: Đảo ngược một số.
function flipInt[n]{
var digit, result = 0
while[ n ]{
digit = n % 10 // Get right-most digit. Ex. 123/10 → 12.3 → 3
result = [result * 10] + digit // Ex. 123 → 1230 + 4 → 1234
n = n/10|0 // Remove right-most digit. Ex. 123 → 12.3 → 12
}
return result
}
// Usage:
alert[
"Reversed number: " + flipInt[ +prompt["Enter a value"] ]
]
Trình bày bằng hình ảnh:.
Giải pháp mẫu:.MUCH FASTER than other methods which convert the number to an Array and then reverse it and join it again. This is a low-level blazing-fast solution.
Mã HTML:
Vlaz
24.3k9 Huy hiệu vàng45 Huy hiệu bạc61 Huy hiệu Đồng9 gold badges45 silver badges61 bronze badges
Đã trả lời ngày 18 tháng 8 năm 2020 lúc 19:27Sep 17, 2018 at 11:05
5
Đã trả lời ngày 19 tháng 6 năm 2021 lúc 4:46
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
0
Đã trả lời ngày 16 tháng 7 lúc 14:50
Shiroshiro54 gold badges287 silver badges371 bronze badges
1291 Huy hiệu bạc13 Huy hiệu đồngJun 27, 2016 at 12:20
Arg0nArg0nArg0n
Ngọt ngào và đơn giản:2 gold badges20 silver badges35 bronze badges
4
Gần đây tôi đã được hỏi làm thế nào để giải quyết vấn đề này và đây là giải pháp ban đầu của tôi:
Đầu ra mong muốn: 123 => 321, -15 => -51, 500 => 5 123 => 321, -15 => -51, 500 => 5
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
1Một giải pháp tốt hơn:
Sau khi tôi cho nó thêm một số suy nghĩ, tôi đã đưa ra những điều sau đây:
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
2Lưu ý: Giải pháp thứ 2 đơn giản hơn nhiều, IMHO
Đã trả lời ngày 31 tháng 1 năm 2020 lúc 18:00Jan 31, 2020 at 18:00
Dzenis H.Dzenis H.Dzenis H.
6.5503 huy hiệu vàng22 Huy hiệu bạc42 Huy hiệu đồng3 gold badges22 silver badges42 bronze badges
1
Đây là giải pháp của tôi, JS thuần túy không có chức năng được xác định trước.
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
3
Vlaz
24.3k9 Huy hiệu vàng45 Huy hiệu bạc61 Huy hiệu Đồng9 gold badges45 silver badges61 bronze badges
Đã trả lời ngày 5 tháng 4 năm 2021 lúc 21:15Apr 5, 2021 at 21:15
1
Đầu tiên, tôi không nghĩ rằng bạn đang sử dụng một mảng để lưu trữ số. Bạn đang sử dụng một biến tập lệnh Java.
Hãy thử mã này và xem nó có hoạt động không.
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
4Đã trả lời ngày 27 tháng 6 năm 2016 lúc 12:40Jun 27, 2016 at 12:40
Aditya Guptaaditya GuptaAditya Gupta
6031 Huy hiệu vàng4 Huy hiệu bạc11 Huy hiệu đồng1 gold badge4 silver badges11 bronze badges
Hoặc, như một lớp lót [
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
2 chứa số nguyên bị đảo ngược]:function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
5Số sẽ được tách thành các chữ số riêng lẻ của nó, đảo ngược và sau đó lắp lại lại thành một chuỗi.
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
3 sau đó chuyển đổi nó thành một số một lần nữa.Đã trả lời ngày 29 tháng 6 năm 2018 lúc 16:34Jun 29, 2018 at 16:34
Carsten Massmanncarsten MassmannCarsten Massmann
23.4K2 Huy hiệu vàng22 Huy hiệu bạc42 Huy hiệu đồng2 gold badges22 silver badges42 bronze badges
2
Giải trình
Sử dụng phương thức mảng JavaScript
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
4, bạn có thể đảo ngược thứ tự của các phần tử mảng.Mã số
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
6
Đã trả lời ngày 27 tháng 6 năm 2016 lúc 13:25Jun 27, 2016 at 13:25
Giả sử bạn có thể muốn đảo ngược nó dưới dạng một số thực và không phải là một chuỗi thử như sau:
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
7Đã trả lời ngày 23 tháng 9 năm 2018 lúc 20:24Sep 23, 2018 at 20:24
JamarjamarJamar
12 huy hiệu đồng2 bronze badges
Sử dụng javascript lartic [] và math.sign [] Bạn có thể đảo ngược một số cả số dương và số âm.
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
8
Đã trả lời ngày 1 tháng 9 năm 2019 lúc 4:17Sep 1, 2019 at 4:17
function reversedNum[num] {
return [
parseFloat[
num
.toString[]
.split['']
.reverse[]
.join['']
] * Math.sign[num]
]
}
9Đã trả lời ngày 19 tháng 1 năm 2021 lúc 19:13Jan 19, 2021 at 19:13
1
Đảo ngược một số mà không chuyển đổi nó thành chuỗi bằng cách sử dụng phương pháp đệ quy.
let num = -5432100
num.toString[]
// num = '-5432100'
0Đã trả lời ngày 6 tháng 6 năm 2021 lúc 20:03Jun 6, 2021 at 20:03
Giải pháp đơn giản nhất là đảo ngược bất kỳ số nguyên nào trong JS. Không hoạt động với phao.
let num = -5432100
num.toString[]
// num = '-5432100'
1
Eric Aya
69.1K34 Huy hiệu vàng176 Huy hiệu bạc247 Huy hiệu đồng34 gold badges176 silver badges247 bronze badges
Đã trả lời ngày 9 tháng 11 năm 2021 lúc 9:29Nov 9, 2021 at 9:29
Áp dụng logic của số đảo ngược trong giấy và thử, và bạn phải quan tâm đến việc phân chia vì nó cho các giá trị nổi. Đó là lý do tại sao chúng ta phải sử dụng
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
5.let num = -5432100
num.toString[]
// num = '-5432100'
2let num = -5432100
num.toString[]
// num = '-5432100'
3
Vlaz
24.3k9 Huy hiệu vàng45 Huy hiệu bạc61 Huy hiệu Đồng9 gold badges45 silver badges61 bronze badges
Đã trả lời ngày 5 tháng 4 năm 2021 lúc 21:15Aug 18, 2020 at 19:27
let num = -5432100
num.toString[]
// num = '-5432100'
4
Vlaz
24.3k9 Huy hiệu vàng45 Huy hiệu bạc61 Huy hiệu Đồng9 gold badges45 silver badges61 bronze badges
Đã trả lời ngày 5 tháng 4 năm 2021 lúc 21:15Jun 19, 2021 at 4:46
let num = -5432100
num.toString[]
// num = '-5432100'
5Đầu tiên, tôi không nghĩ rằng bạn đang sử dụng một mảng để lưu trữ số. Bạn đang sử dụng một biến tập lệnh Java.Jul 16 at 14:50
Hãy thử mã này và xem nó có hoạt động không.shiro
Đã trả lời ngày 27 tháng 6 năm 2016 lúc 12:401 silver badge13 bronze badges
Aditya Guptaaditya Gupta
let num = -5432100
num.toString[]
// num = '-5432100'
6
6031 Huy hiệu vàng4 Huy hiệu bạc11 Huy hiệu đồng
Hoặc, như một lớp lót [
2 chứa số nguyên bị đảo ngược]:7 gold badges22 silver badges49 bronze badges// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
Số sẽ được tách thành các chữ số riêng lẻ của nó, đảo ngược và sau đó lắp lại lại thành một chuỗi.
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
3 sau đó chuyển đổi nó thành một số một lần nữa.Feb 14, 2021 at 12:24
1
Đã trả lời ngày 29 tháng 6 năm 2018 lúc 16:34
let num = -5432100
num.toString[]
// num = '-5432100'
7
Carsten Massmanncarsten Massmann
23.4K2 Huy hiệu vàng22 Huy hiệu bạc42 Huy hiệu đồng4 gold badges47 silver badges67 bronze badges
Giải trìnhMar 24, 2021 at 23:30
Sử dụng phương thức mảng JavaScript
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
num.join['']
// num = '0012345-'
4, bạn có thể đảo ngược thứ tự của các phần tử mảng.- Mã số
- Đã trả lời ngày 27 tháng 6 năm 2016 lúc 13:25
- Giả sử bạn có thể muốn đảo ngược nó dưới dạng một số thực và không phải là một chuỗi thử như sau:Math.sign[]
Đã trả lời ngày 23 tháng 9 năm 2018 lúc 20:24
let num = -5432100
num.toString[]
// num = '-5432100'
8
Vlaz
24.3k9 Huy hiệu vàng45 Huy hiệu bạc61 Huy hiệu Đồng9 gold badges45 silver badges61 bronze badges
Đã trả lời ngày 5 tháng 4 năm 2021 lúc 21:15Jan 4 at 10:10
Đầu tiên, tôi không nghĩ rằng bạn đang sử dụng một mảng để lưu trữ số. Bạn đang sử dụng một biến tập lệnh Java.
let num = -5432100
num.toString[]
// num = '-5432100'
9
Vlaz
24.3k9 Huy hiệu vàng45 Huy hiệu bạc61 Huy hiệu Đồng9 gold badges45 silver badges61 bronze badges
Đã trả lời ngày 5 tháng 4 năm 2021 lúc 21:15Jun 29, 2018 at 16:23