【发布时间】:2013-10-04 15:17:21
【问题描述】:
假设我的限制是
1
在最短的时间内搜索此内容的最佳算法是什么?
我为此尝试了 2 种方法: 我的第一个方法 n 是数字,k 是 4 或 7
while(n>0)
{
d=n%10;
if(d==4 || d==7)
return true;
n/=10;
}
我的第二种方法是将数字转换为字符串并使用查找功能:
string str = NumberToString(i);
if ((str.find("4") != std::string::npos) || (str.find("7") != std::string::npos))
c++;
还有其他更快的方法来实现这一点吗? 我只需要数字应该包含 4 或 7
【问题讨论】:
-
这对我来说似乎是一个家庭作业问题,如果你展示你迄今为止尝试过的东西,你更有可能从这样的问题中得到积极的回应。
-
包含是什么意思?其中一位数字是
k? -
当您说“包含”时,您的意思是“有 k 作为其数字之一”吗?
-
一个数字“包含”另一个数字是什么意思?你的意思是
n表示为十进制字符串包含一个子字符串k表示为十进制字符串?您已经拥有n和k是什么形式的? -
不管怎样,
std::find和std::string::find可能是你想看的。
标签: c++ algorithm time-complexity