Chuỗi thành số nguyên (atoi) python

Gợi ý. Xem xét cẩn thận tất cả các trường hợp đầu vào có thể. Nếu bạn muốn thử thách, vui lòng không xem bên dưới và tự hỏi bản thân các trường hợp đầu vào có thể là gì

ghi chú. Vấn đề này được dự định sẽ được chỉ định một cách mơ hồ [nghĩa là không có thông số kỹ thuật đầu vào nhất định]. Bạn có trách nhiệm thu thập trước tất cả các yêu cầu đầu vào

Cập nhật [2015-02-10].
Chữ ký của hàm C++ đã được cập nhật. Nếu bạn vẫn thấy chữ ký hàm của mình chấp nhận đối số const char *, vui lòng nhấp vào nút tải lại để đặt lại định nghĩa mã của bạn.

cảnh báo spoilers.. nhấp để hiển thị các yêu cầu đối với atoi

Yêu cầu đối với atoi.
Đầu tiên, hàm loại bỏ bao nhiêu ký tự khoảng trắng cần thiết cho đến khi tìm thấy ký tự không phải khoảng trắng đầu tiên. Sau đó, bắt đầu từ ký tự này, lấy một dấu cộng hoặc dấu trừ ban đầu tùy chọn, theo sau là càng nhiều chữ số càng tốt và diễn giải chúng dưới dạng một giá trị số.

Chuỗi có thể chứa các ký tự bổ sung sau các ký tự tạo thành số nguyên, các ký tự này bị bỏ qua và không ảnh hưởng đến hoạt động của hàm này

Nếu chuỗi đầu tiên của các ký tự không phải khoảng trắng trong str không phải là một số nguyên hợp lệ hoặc nếu không có chuỗi nào như vậy tồn tại vì str trống hoặc nó chỉ chứa các ký tự khoảng trắng, thì không có chuyển đổi nào được thực hiện

Nếu không thể thực hiện chuyển đổi hợp lệ, giá trị 0 được trả về. Nếu giá trị chính xác nằm ngoài phạm vi giá trị có thể biểu thị, INT_MAX [2147483647] hoặc INT_MIN [-2147483648] được trả về

số 8. Chuỗi số nguyên [át chủ bài]

  • Thời gian. $O[n]$
  • Khoảng trống. $O[1]$

C++JavaPython

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

class Solution {
 public:
  int myAtoi[string s] {
    trim[s];
    if [s.empty[]]
      return 0;

    const int sign = s[0] == '-' ? -1 : 1;
    if [s[0] == '+' || s[0] == '-']
      s = s.substr[1];

    long num = 0;

    for [const char c : s] {
      if [!isdigit[c]]
        break;
      num = num * 10 + [c - '0'];
      if [sign * num  INT_MAX]
        return INT_MAX;
    }

    return sign * num;
  }

 private:
  void trim[string& s] {
    s.erase[0, s.find_first_not_of[' ']];
    s.erase[s.find_last_not_of[' '] + 1];
  }
};

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

________X

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22

class Solution:
  def myAtoi[self, s: str] -> int:
    s = s.strip[]
    if not s:
      return 0

    sign = -1 if s[0] == '-' else 1
    if s[0] in {'-', '+'}:
      s = s[1:]

    num = 0

    for c in s:
      if not c.isdigit[]:
        break
      num = num * 10 + ord[c] - ord['0']
      if sign * num = 2**31 - 1:
        return 2**31 - 1

    return sign * num

Làm cách nào để chuyển đổi chuỗi thành số nguyên trong Python?

Để chuyển đổi hoặc ép kiểu chuỗi thành số nguyên trong Python, bạn sử dụng hàm tích hợp int[] . Hàm nhận tham số là chuỗi ban đầu bạn muốn chuyển đổi và trả về số nguyên tương đương với giá trị bạn đã truyền. Cú pháp chung trông giống như thế này. int["str"].

Hàm atoi[] trả về kiểu dữ liệu gì?

Hàm atoi[] trả về giá trị int được tạo bằng cách diễn giải các ký tự đầu vào dưới dạng số. Giá trị trả về là 0 nếu hàm không thể chuyển đổi đầu vào thành giá trị của loại đó.

atoi nghĩa là gì?

Thu nhập hoạt động sau thuế [ATOI] là tổng thu nhập hoạt động sau thuế của một công ty.

Chức năng atoi hoạt động như thế nào?

Hàm atoi trả về biểu diễn số nguyên của một chuỗi. Hàm atoi bỏ qua tất cả các ký tự khoảng trắng ở đầu chuỗi, chuyển đổi các ký tự tiếp theo thành một phần của số rồi dừng khi gặp ký tự đầu tiên không phải là số

Chủ Đề