- 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
Câu hỏi này đã được hỏi trước đây bằng các ngôn ngữ khác, nhưng không phải bằng delphi sau khi tìm kiếm SO. Đã thấy câu hỏi này:Cách tạo hoán vị với các ký tự lặp lạiCâu hỏi này:Tạo tất cả các kết hợp của bảng chữ cái tùy ý với độ dài tùy ýVà điều này:Làm cách nào để tạo kết hợp các chuỗi có độ dài cố định bằng cách sử dụng một bộ ký tự?Vì vậy, vấn đề này không phải là mới, nhưng tôi đang gặp khó khăn khi dịch bất kỳ nội dung nào sang Delphi.
Điều tôi muốn làm là tạo các kết hợp chứa các ký tự lặp lại, ví dụ: Nếu chúng tôi có một chuỗi ký tự (do người dùng chỉ định): ABC và chúng tôi muốn tạo độ dài ba ký tự (cũng là độ dài do người dùng chỉ định), Tôi nhận được:AAA AAB AAC ABA ABB ABC ACA ACB ACC BAA BAB BAC v.v...
Mã này dường như làm điều này, nhưng trong C++:
int N_LETTERS = 4;
bảng chữ cái char[] = {'a', 'b', 'c', 'd'};
std::vector get_all_words(độ dài int)
{
std::vector chỉ mục (độ dài, 0);
std::vector từ;
trong khi (đúng)
{
std::string word(độ dài);
cho (int i = 0; i < chiều dài; ++i)
từ[i] = bảng chữ cái[chỉ mục[i]];
từ.push_back(word);
cho (int i = chiều dài-1; ; --i)
{
nếu (i < 0) trả về các từ;
chỉ mục[i]++;
nếu (chỉ mục[i] == N_LETTERS)
chỉ số[i] = 0;
khác
phá vỡ;
}
}
}
Điều này dường như làm điều tương tự:
#include
#include
#include
#include
#include
using namespace std;
void displayPermutation(hoán vị chuỗi[], độ dài int){
int i;
cho (i=0;i<>
cout<<>
}
cout << endl;
}
void getPermutations(string operatorBank[], int operatorCount,
hoán vị chuỗi [], int permutationLength, int curIndex){
int i;
// dừng điều kiện đệ quy
if(curIndex == permutationLength){
displayPermutation(hoán vị, chiều dài hoán vị);
}
khác{
for(i = 0; i < operatorCount; i++){
hoán vị[curIndex] = operatorBank[i];
getPermutations(operatorBank,operatorCount, hoán vị,
hoán vịLength,curIndex+1);
}
}
}
int chính()
{
int toán tửCount = 4;
int hoán vịLength = 3;
chuỗi operatorBank[] = {"+","-","*","/"};
hoán vị chuỗi [] = {"","","",""} // chuỗi trống
int curIndex = 0;
getPermutations(operatorBank,operatorCount, hoán vị,
hoán vịLength,curIndex);
return 0;
}
Gần nhất với những gì tôi muốn trong delphi được tìm thấy ở đây, nhưng nó không cho phép AAA
Ví dụ: http://www.swissdelphicenter.ch/torry/showcode.php?id=1032
Không, nếu bạn đoán thì đây không phải là bài tập về nhà. Không có động lực nào khác, chỉ là học tập.
Chỉnh sửa 3:Đã xóa tất cả mã không liên quan khỏi câu hỏi để giúp người khác đọc và nhận câu trả lời bên dưới dễ dàng hơn. Hãy xem câu trả lời để biết 2 cách khác nhau để đạt được điều này: một cách sử dụng đệ quy và cách kia sử dụng hàm đếm.
câu trả lời hay nhất
Ví dụ bạn đưa ra khiến việc này phức tạp hơn nhiều so với mức cần thiết, ít nhất là theo ý kiến của tôi.
Những gì bạn đang thực sự nhìn thấy là một số có 3 chữ số trong cơ số 3. Bạn có thể đếm từ 0 đến 33 = 27, sau đó chuyển đổi từng số thành cơ số 3 (sử dụng 'A', 'B' và 'C' cho các số của bạn thay vì '0', '1' và '2').
Trong C++, quá trình chuyển đổi trông như thế này:
std::string cvt(int in) {
const int cơ sở tĩnh = 3;
hằng số tĩnh int = 3;
std::string ret;
for (int i = 0; i
ret.push_back('A' + trong % base);
trong /= cơ sở;
}
return std::string(ret.rbegin(), ret.rend());
}
Với các phép biến đổi thích hợp, việc tạo ra tất cả các kết hợp rất đơn giản:
vì (int i = 0; i < 27; i++)
std::cout << cvt(i) << "\t";
Tôi nghĩ rằng hầu như không có vấn đề cơ học thuần túy nào khi chuyển đổi cái này sang Delphi - phân bổ từ =
Thay đổi thành :=
,%
trở nên mod
, phép chia số nguyên trở thành div
,for
Vòng lặp trở thành một cái gì đó như với i = 0 đến 27 thì làm
, vân vân. Phần tẻ nhạt nhất (nhưng cuối cùng lại rất đơn giản) có lẽ là giải quyết một thực tế là trong C++,ký tự
Chỉ là một loại số nguyên nhỏ mà bạn có thể thực hiện các phép toán số nguyên thông thường. Ít nhất nếu bộ nhớ phục vụ tôi một cách chính xác, thì trong Pascal (hoặc các dẫn xuất như Delphi), bạn cần mệnh lệnh
Chuyển đổi ký tự thành số thứ tự và yêu cầu chr
Chuyển đổi từ thứ tự trở lại ký tự. Vì thế 'A' + theo % cơ sở;
cuối cùng sẽ trở nên giống hơn chr(ord('A') + trong cơ sở mod);
Tuy nhiên, như tôi đã nói, có vẻ như gần như toàn bộ bản dịch có thể/nên gần như hoàn toàn là máy móc, không có bất kỳ thay đổi thực sự nào về cách hoạt động của thuật toán cơ bản hoặc bất kỳ điều gì tương tự.
Về thuật toán - tạo các tổ hợp ký tự dựa trên chuỗi và độ dài tùy ý - tương tự như hoán 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/20369409/
将 KLV 字符串拆分为键、长度、值作为元素的列表/元组的更有效方法是什么? 为了添加一点背景,前 3 位数字作为键,接下来的 2 位表示值的长度。 我已经能够使用以下代码解决该问题。但我不认为我的代
首先,我试图从文件中提取视频持续时间,然后在无需实际上传文件的情况下显示它。 当用户选择视频时 - 信息将显示在其下方,包括文件名、文件大小、文件类型。不管我的技能多么糟糕 - 我无法显示持续时间。我
我是 Scala 编程新手,这是我的问题:如何计算每行的字符串数量?我的数据框由一列 Array[String] 类型组成。 friendsDF: org.apache.spark.sql.DataF
我有一个React Web应用程序(create-react-app),该应用程序使用react-hook-forms上传歌曲并使用axios将其发送到我的Node / express服务器。 我想确
如果给你一个网络掩码(例如 255.255.255.0),你如何在 Java 中获得它的长度/位(例如 8)? 最佳答案 如果您想找出整数低端有多少个零位,请尝试 Integer.numberOfTr
我需要使用 jQuery 获取 div 数量的长度。 我可以得到它,但在两个单击事件中声明变量,但这似乎是错误的,然后我还需要使用它来根据数字显示隐藏按钮。我觉得我不必将代码加倍。 在这里摆弄 htt
我对此感到非常绝望,到目前为止我在 www 上找不到任何东西。 情况如下: 我正在使用 Python。 我有 3 个数组:x 坐标、y 坐标和半径。 我想使用给定的 x 和 y 坐标创建散点图。 到目
我有一个表单,我通过 jQuery 的加载函数动态添加新的输入和选择元素。有时加载的元素故意为空,在这种情况下我想隐藏容器 div,这样它就不会破坏样式。 问题是,我似乎无法计算加载的元素,因此不知道
我决定通过替换来使我的代码更清晰 if (wrappedSet.length > 0) 类似 if (wrappedSet.exists()) 是否有任何 native jq 函数可以实现此目的?或者
简单的问题。如果我有一个如下表: CREATE TABLE `exampletable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `textfield`
我正在使用经典 ASP/MySQL 将长用户输入插入到我的数据库中,该输入是从富文本编辑器生成的。该列设置为 LONG-TEXT。 作为参数化查询(准备语句)的新手,我不确定用于此特定查询的数据长度。
我正在获取 Stripe 交易费用的值(value)并通过禁用的文本字段显示它。 由于输入文本域,句子出现较大空隙 This is the amount $3.50____________that n
我有一个 div,其背景图像的大小设置为包含。但是,图像是视网膜计算机(Macbook Pro 等)的双分辨率图像,所以我希望能够以某种方式让页面知道即使我说的是背景大小:包含 200x200 图像,
我正在开发一个具有“已保存”和“已完成”模块的小部件。当我删除元素时,它会从 dom 中删除/淡化它,但是当我将其标记为完成时,它会将其克隆到已完成的选项卡。这工作很棒,但顶部括号内的数字不适合我。这
我有一个来自 json 提要的数组,我知道在 jArray 中有一个联盟,但我需要计算出该数组的计数,以防稍后将第二个添加到提要中。目前 log cat 没有注销“teamFeedStructure”
目标:给定一个混合类型的数组,确定每个级别的元素数量。如果同一层有两个子数组,则它们的每个元素都计入该层元素的总数。 方法: Array.prototype.elementsAtLevels = fu
我需要帮助为 Java 中的单链表制作 int size(); 方法。 这是我目前所拥有的,但它没有返回正确的列表大小。 public int size() { int size = 0;
我正在为学校作业创建一个文件服务器应用程序。我目前拥有的是一个简单的 Client 类,它通过 TCP 发送图像,还有一个 Server 类接收图像并将其写入文件。 这是我的客户端代码 import
我有这对功能 (,) length :: Foldable t => t a -> b -> (Int, b) 和, head :: [a] -> a 我想了解的类型 (,) length he
我正在GitHub Pages上使用Jekyll来构建博客,并希望获得传递给YAML前题中Liquid模板的page.title字符串的长度,该字符串在每个帖子的YAML主题中。我还没有找到一种简单的
Tôi là một lập trình viên xuất sắc, rất giỏi!