Pandigital数字是一个包含数字1..number长度的数字.
例如123,4312和967412385.
我已经解决了许多Project Euler问题,但Pandigital问题总是超过一分钟规则.
这是我的pandigital功能:
private boolean isPandigital(int n){
Set<Character> set= new TreeSet<Character>();
String string = n+"";
for (char c:string.toCharArray()){
if (c=='0') return false;
set.add(c);
}
return set.size()==string.length();
}
Run Code Online (Sandbox Code Playgroud)
创建自己的函数并使用此方法对其进行测试
int pans=0;
for (int i=123456789;i<=123987654;i++){
if (isPandigital(i)){
pans++;
}
}
Run Code Online (Sandbox Code Playgroud)
使用这个循环,你应该得到720个pandigital数字.我的平均时间是500毫秒.
我正在使用Java,但问题是对任何语言开放.
更新
@andras答案到目前为止是最好的时间,但是@Sani Huttunen的回答激发了我添加一个新的算法,它几乎与@andras相同.
我正在彻底阅读DI,看起来很有趣.到目前为止,我完全没有它.
我看到的所有例子都与JNDI以及DI如何帮助您提高灵活性有关.
您通过DI解决的现实应用/问题在其他方面难以解决?
更新
到目前为止所有的答案都在教育,但是为了重新解释这个问题,我正在寻找编程生涯中的例子,这让你说"这个问题最好用DI框架来解决".
我已经尝试了许多方法来实现常规UISlider和控制设备卷,但它是所有Native-C函数,导致许多无法追踪的错误.
我试过MPVolumeView它就像魅力一样,它甚至在你关闭应用程序后控制设备音量,就像iPod应用程序一样.
我的问题是,无论如何要定制MPVolumeView特定的颜色和图像,就像UISlider?
注意:我想要一个合法的方法,而不使用私有的未记录的API.
更新
根据@Alexsander Akers的回答,由于子视图隐藏在MPVolumeView我必须遍历子视图,获取UISlider并自定义它,这里是代码.
IBOutlet UISlider *volumeSlider; //defined in <class.h> and connected to a UISlider in Interface Builder
-(void) viewDidLoad {
....
[self setCustomSlider];
....
}
-(void) setCustomSlider{
MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:[volumeSlider frame]] autorelease];
NSArray *tempArray = volumeView.subviews;
for (id current in tempArray){
if ([current isKindOfClass:[UISlider class]]){
UISlider *tempSlider = (UISlider *) current;
UIImage *img = [UIImage imageNamed:@"trackImage.png"];
img = [img stretchableImageWithLeftCapWidth:5.0 topCapHeight:0]; …Run Code Online (Sandbox Code Playgroud) try/catch在Java中使用块而不是使用多个If语句来检查用户输入是否更好,更便宜或更具可读性?
解析Date字符串时的示例,使用try/catch块直接解析而不是编写查找非法字符的多个语句不是更好.
在另一个例子中,假设我想要读取文件或流,而不是使用Scanner,我只是强制该方法并等待发生异常.
这是一种健康的编程方法吗?它在虚拟机上更便宜吗?
更新
这里是我在使用DateFormat异常时的意思的一个例子,有时它可能是一个真正的问题来捕获错误,并且这样做,你能保证你的复杂(通常是不可读)代码容易出错吗?
我们在我们的项目中使用JSF(我很新),每个页面都有一个后端bean Java文件.
为了从一个页面移动(重定向)到另一个页面,我需要在重定向之前将所有参数(搜索条件)放在请求范围中,然后在下一个页面构造函数中将其检索回来.如果你的页面很少,并且想要回到顶部,那么维护它会变得非常烦人.
例如,如果我有第1页的高级搜索过滤器,根据所选项目重定向到第2页,从第2页开始,您将获得另一个列表,您可以转到第3页了解详细信息.现在每次我需要将所有参数放在请求范围内/再次读取它们时,将它们存储在隐藏字段中并将它们取回.
这个方法究竟是什么问题,并且在JSF中有更好的方法吗?
编辑:环境是IBM Rational Application Developer(RAD),它有自己的JSF实现.不确定这是否有所作为.
在调用Javascript函数时,似乎JS优先考虑没有参数的函数,即使我有与参数相同的函数名.奇怪的行为只发生在以下场景中:
我有一个嵌入了Javascript的HTML页面,如下所示:
//Javascript in the page
function testAbc(){
alert('testAbc no params');
}
//Javascript in common.js
function testAbc(x){
alert('testAbc with param:'+x);
}
function testAbcFunc(x){
testAbc(x);
}
Run Code Online (Sandbox Code Playgroud)
现在从页面的某个地方,im testAbcFunc从common.js 调用,期望它testAbc使用参数调用,这是常用函数.但奇怪的是,JS在没有params的情况下回调原始页面中的函数!!
我已经在几个小时前调试了这个bug,我尝试了这个简短的代码来重现这个bug,它确实每次都会发生.
注意:如果所有函数都在同一页面中,则会调用正确的函数(带参数),但是当它们在页面和JS文件之间分开时.JS似乎优先考虑页面中的功能,即使它没有参数
我试图尽可能避免使用Interface Builder.
目前我通过代码创建了视图控制器,并通过代码更改了视图.
我现在需要其中一个步骤将应用程序发送到带有标签栏的新视图,这样我也可以更改视图.
理想情况下,我要做的是告诉当前的视图控制器在底部添加一个Tab Bar,但我不确定这是否可行,所以我可能不得不用UITabBarController交换UIViewController?
任何帮助将不胜感激.
干杯,安德烈
在PHP中,在创建登录页面时,如果您的页面是HTTPS,用户名/密码是否通常出现在请求发布信息中?
密码不应加密吗?我错过了什么?
这是我正在谈论的一个例子:这个网站叫做souq.com,你可以在Firebug监控中看到它显示用户名和密码.

这种编写IF条件的方式是否在Java和C#语言中被认为是良好的编码风格?
if (checkIfIdInFirstRange()){
//call Range1 handling method
}else if(checkIfIdInSecondRange()){
//call Range2 handling method
}else{
//call error handling method
}
Run Code Online (Sandbox Code Playgroud)
我想知道IF条件本身内部的方法,还是更好的做法:
int idInRange = getIdInRange();
//handle isInRange
Run Code Online (Sandbox Code Playgroud)