- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Đây là một câu hỏi phỏng vấn từ Google. Tôi không thể tự mình tìm ra nó. Ai đó có thể giải thích điều này?
Viết chương trình in một chuỗi các lần nhấn phím tạo ra số ký tự "A" tối đa. Bạn chỉ có thể sử dụng 4 phím:MỘT,Ctrl+MỘT,Ctrl+C Và Ctrl+V. Chỉ cho phép tổ hợp phím N. tất cả Ctrl+ các ký tự được coi là một lần nhấn phím, vì vậy Ctrl+MỘT Đó là một tổ hợp phím.
Ví dụ trình tựMỘT, Ctrl+MỘT, Ctrl+C, Ctrl+V Tạo hai chữ A trong 4 lần nhấn phím.
Tôi đã làm một số phép toán. Với N bất kỳ, sử dụng x A, a Ctrl+MỘT,một Ctrl+C và yCtrl+V, chúng ta có thể tạo ra mức tối đa ((N-1)/2)2An A. Đối với một số N > M, tốt hơn nên sử dụng càng nhiều Ctrl+MỘT,Ctrl+CVà Ctrl+V trình tự vì nó nhân đôi số lượng A.
sự liên tiếp Ctrl+MỘT, Ctrl+V, Ctrl+ C Các lựa chọn hiện tại sẽ không bị ghi đè. Nó nối thêm lựa chọn đã sao chép vào lựa chọn đã chọn.
câu trả lời hay nhất
Có một giải pháp lập trình động. Chúng ta biết rằng phím 0 có thể biến chúng ta thành 0 A. Sau đó chúng tôi đi ngang quaTôi
hầu hết n
, thực hiện hai việc: nhấn A một lần và nhấn Select All + Copy rồi Paste j
lần (thực tế như sau ji-1
; lưu ý thủ thuật ở đây: nội dung vẫn còn trong clipboard nên chúng ta có thể dán nhiều lần mà không cần phải sao chép mỗi lần). Chúng ta chỉ cần xét tối đa 4 lần dán liên tiếp, vì select,copy,paste x 5 tương đương với select,copy,paste,select,copy,paste, tốt hơn vì nó để lại nhiều nội dung hơn trong clipboard. một khi chúng tôi đến n
, chúng tôi đã nhận được kết quả mong muốn.
Độ phức tạp có thể xuất hiện là O(N), nhưng vì các số tăng theo cấp số nhân nên thực tế nó là O(N) do độ phức tạp của việc nhân các số lớn2). Dưới đây là cách triển khai Python. Tính N=50.000 mất khoảng 0,5 giây.
định nghĩa max_chars(n):
dp = [0] * (n+1)
cho tôi trong xrange(n):
dp[i+1] = max(dp[i+1], dp[i]+1) # nhấn a
cho j trong xrange(i+3, min(i+7, n+1)):
dp[j] = max(dp[j], dp[i]*(ji-1)) # nhấn chọn tất cả, sao chép, dán x (ji-1)
trả về dp[n]
Trong mã,j
Biểu thị tổng số phím được nhấn sau chuỗi phím mới của chúng tôi. chúng tôi đã có rồi Tôi
các phím ở giai đoạn này, cũng như 2 phím mới để vào Select All và Copy. Vậy là chúng ta đang nhấn dán ji-2
Hạng hai. Kể từ khi dán thêm vào dp[i]
theo trình tự hiện cóMỘT
, chúng ta cần thêm 1
制作 ji-1
.điều này giải thích ji-1
Ở hàng thứ hai đến cuối cùng.
Dưới đây là một số kết quả (n
=> số A):
Tôi đồng ý với @SB rằng bạn phải luôn nêu giả thuyết của mình: Giả thuyết của tôi là bạn không cần dán hai lần để nhân đôi số ký tự. Câu này có 7 câu trả lời, vì vậy trừ khi giải pháp của tôi sai thì giả thuyết này phải đúng.
Nếu có ai thắc mắc tại sao tôi không kiểm tra Ctrl+MỘT, Ctrl+C , MỘT, Ctrl+V: Kết quả cuối cùng luôn là tổng củaMỘT, Ctrl+MỘT, Ctrl+C, Ctrl+V 我确实Đã cân nhắc nó.
Về thuật toán - số ký tự tối đa sử dụng tổ hợp phím A, Ctrl+A, Ctrl+C và Ctrl+V, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/16509427/
đóng cửa. Câu hỏi này không tuân thủ các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Các câu hỏi yêu cầu mã phải thể hiện sự hiểu biết tối thiểu về vấn đề đang được giải quyết. Bao gồm các giải pháp đã thử, tại sao chúng không hiệu quả và trước
Tại sao việc thêm hai char lại tạo ra kiểu int trong C#? Ví dụ, khi tôi làm điều này: var pr = 'R' + 'G' + 'B' + 'Y' + 'P'; biến pr trở thành kiểu int. tôi hy vọng nó là như vậy
Đoạn mã sau biên dịch, nhưng kiểu char hoạt động khác với kiểu int. Cụ thể là cout ::ikIsX >() ::ikIsX >() ::ikIsX >() sử dụng tên
Tôi đang tìm một biểu thức chính quy sẽ khớp với bất kỳ thứ gì dài từ 1 ký tự trở lên nhưng không phải 500. Điều này sẽ được sử dụng trong các tệp định tuyến Rails, đặc biệt để xử lý các trường hợp ngoại lệ. Route.rb khớp '/500', tới: 'err
Đối với bài tập lập trình C, tôi đang cố gắng viết một vài tệp tiêu đề để kiểm tra cú pháp của cái gọi là "ngôn ngữ lập trình X". Tôi mới bắt đầu gần đây và đang viết tệp tiêu đề đầu tiên của mình. Đây là mã tôi đã viết: #ifndef _DeclarationsChecker_h_
Tại sao các ký tự ascii mở rộng (â, é, v.v.) được thay thế bằng các ký tự? Tôi đã đính kèm một hình ảnh...nhưng tôi đang sử dụng PHP để trích xuất dữ liệu từ MySQL và nó có các ký tự mở rộng ở một số chỗ...Tôi đang sử dụng phông chữ Arial. bạn có thể
Tôi gặp sự cố đơn giản liên quan đến dây bị đứt trong R. Tôi đang cố gắng dán nhưng tôi gặp khó khăn khi ngắt quãng giữa (ký tự/số). Lưu ý rằng các giá trị được chứa trong vectơ (V1=81,V2=55,V3=25) Tôi đã thử mã này: cat(p
Làm cách nào để chuyển đổi ký tự ANSI (char) sang ký tự Unicode (wchar_t) và ngược lại? Có mã nguồn đa nền tảng nào cho mục đích này không? Câu trả lời hay nhất Có, trong bạn có mbstowcs() và wcsto
Hàm fromCharCode không hoạt động với các ký tự ANSI quốc tế. Ví dụ: đối với các ký tự ANSI (cp-1251) của Nga có ID từ 192 đến 223, nó sẽ trả về các ký tự đặc biệt. Làm thế nào để giải quyết vấn đề này? Theo tôi, A cần phải
Tôi muốn ẩn id nếu không thích nhưng không được SELECT * FROM character, character_actor WHERE character.id NOT THÍCH character_a
Bây giờ chương trình này đã đảo ngược thành công các từ đã nhập bằng bàn phím. Nhưng tôi muốn "lưu" từ đó vào con trỏ trước khi đảo ngược nó, để tôi có thể so sánh cả hai từ đó, từ đảo ngược và từ "thô", và kiểm tra xem chúng có phải là bảng màu không. Tôi chưa có nhiều kinh nghiệm và có thể còn nhiều lỗi hơn tôi biết, nhưng tôi
Hàm Memcpy và memcmp có thể chấp nhận các biến con trỏ không? char *p; char* q; memcpy(p,q,10); //điều này có hiệu quả không?
Tôi e rằng tôi nghi ngờ về các chi tiết của một chủ đề khá bão hòa, tôi đã tìm kiếm rất nhiều nhưng không thể tìm thấy câu trả lời rõ ràng cho câu hỏi quan trọng rõ ràng -imho- cụ thể này: Convert byte[] to use UTF- 8 Khi sử dụng Chuỗi, mỗi byte (8bit) sẽ trở thành
Tôi có một vấn đề kỳ lạ. Tôi cần in chuỗi đầu ra từ lệnh stat. Tôi đã viết mã để có được một số thông tin. nhập toàn cầu nhập os cho tệp trong glob.glob('system1
Tôi đang sử dụng Java và có một chuỗi có giá trị như bên dưới, String data = "vale-cx";
String urlParameters = "login=test&password=te&ff"; Tôi có Chuỗi urlParams, & - là một phần của mật khẩu, làm cách nào tôi có thể thoát nó để nó không được nhận dạng là một phần tách
Xin chào mọi người, tôi chỉ muốn trích xuất chữ cái đầu tiên từ chuỗi này: String str = "Acts 16:31 ERV-ZH"; Tôi chỉ muốn lấy các ký tự này: Acts và không bao gồm ERV-ZH chỉ có số
Câu hỏi này đã có câu trả lời: Sự cố hoặc "lỗi phân đoạn" khi dữ liệu được sao chép/quét/đọc đến điểm chưa được khởi tạo
Vì vậy, tôi có một ký tự**; về cơ bản là một câu có con trỏ tới từng từ trong câu đó; tức là 'h''i''\0''w''o''r''l ''d'' \0''y''a''y''!''\0' Trong trường hợp này tôi muốn sử dụng
Câu hỏi này đã có câu trả lời ở đây: Sử dụng dấu ngoặc kép bên trong dấu ngoặc kép (12 câu trả lời) Đã đóng 7 năm trước. Làm thế nào để in ký tự "? Tôi biết in dấu %
Tôi là một lập trình viên xuất sắc, rất giỏi!