我接受了一次采访,我的表现非常糟糕.所以,现在我正试图找到问题的解决方案.这是面试问题:
"我们有以下映射:
M:1000,D:500,C:100,L:50,X:10,V:5,I:1.
我们有以下规则:
每个字母映射到正整数值
您将值一起添加,但...
...当一个值(或相同值的运行)后跟一个更大的值时,您减去该运行值的总和.
例子:
IIX - > 8
MCCMIIX - > 1808
我们得到了这个Java方法:int valueOfRoman(char roman).我们已经实现了Java方法:int romanToInt(String s)"
我知道这不是一个合适的罗马数字系统,但这是实际的问题.
我能够为正确的罗马系统编写一个有效的解决方案.但是我无法改变它以便它适应这些新规则,特别是规则3.我已经尝试过,但没有成功.我的解决方案现在的方式,对于IIX,它打印10,而不是8的正确答案.这是我的代码(我也valueOf为我的测试实现):
static int romanToInt(String s) {
char curr;
int currVal;
char prev;
int prevVal;
int total = valueOfRoman(s.charAt(0));
for (int i = 1; i < s.length(); i++) {
curr = s.charAt(i);
currVal = valueOfRoman(curr);
prev = s.charAt(i-1);
prevVal = valueOfRoman(prev);
total += currVal;
if(currVal > prevVal) {
total = total - (2*prevVal); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Apache HttpClient Java库对使用基于表单的身份验证(例如,facebook.com)的网站进行身份验证.
使用这个网站的程序作为一个主要的例子:http://www.elitejavacoder.com/2013/10/http-client-form-based-authentication.html,我能够做到 - 但有一些事情,我我不理解这个节目.这是代码:
package com.elitejavacoder.http.client;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class HttpClientFormAuthentication {
public static void main(String[] agrs) {
String host = "yourhostname.com";
int port = 8080;
String protocol = "http";
DefaultHttpClient client = new DefaultHttpClient();
try {
HttpHost httpHost = new HttpHost(host, port, protocol);
client.getParams().setParameter(ClientPNames.DEFAULT_HOST, httpHost);
HttpGet securedResource = new …Run Code Online (Sandbox Code Playgroud) java j-security-check form-authentication apache-httpclient-4.x
例如,Java 的 Spring AOP 框架提供了提供拦截器来拦截某些过程的功能,例如,当执行方法时 - Spring AOP 可以劫持正在执行的方法,并在方法执行之前或之后添加额外的功能。
我想知道Dart中是否有类似的东西。例如,您可以在 Dart 中拦截对变量的访问和突变吗?我在 Dart 文档中找不到类似的内容。
谢谢
如果是这样,这是如何实现的?如果没有,是否有任何计划在未来的Dart版本中支持这一点?我主要是指你自己创建的自定义注释.
在此文档链接https://www.dartlang.org/docs/spec/latest/dart-language-specification.html#h.d0rowtffuudf中,它说:"元数据与程序构造p的抽象语法树相关联紧接着元数据,假设p本身不是元数据或注释.元数据可以在运行时通过反射调用检索,前提是注释的程序结构p可以通过反射访问.
从M3版本开始,尚未实现对元数据的反射访问."
谢谢.
我最近开始学习Haskell,我正在尝试使用Haskell为FORTH语言编写解释器.但是我在尝试运行最基本的操作时遇到了问题.例如,FORTH中的一个简单程序(在Haskell中作为字符串)将如下:"1 2 +"返回包含整数3的堆栈,在Haskell中可以表示一个整数列表:[3].
我还有从堆栈中推送,删除和弹出元素的功能.我有一个添加函数来从堆栈中添加两个元素.
现在,手头有这些功能,如何解析简单的程序"1 2 +"才能返回[3]?我希望这个例子看起来像这样:
forthInterpreter "1 2 +"
[3]
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.如果您有任何澄清问题,请告诉我.谢谢.
我借助以下链接使用Graph API和Facebook SDK for PHP:https://developers.facebook.com/docs/php/howto/profilewithgraphapi/4.0.0.这是代码:
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
if($session) {
try {
$user_profile = (new FacebookRequest(
$session, 'GET', '/me'
))->execute()->getGraphObject(GraphUser::className());
echo "Name: " . $user_profile->getName();
} catch(FacebookRequestException $e) {
echo "Exception occured, code: " . $e->getCode();
echo " with message: " . $e->getMessage();
}
}
Run Code Online (Sandbox Code Playgroud)
我可以通过使用得到用户的名字user_profile->getName();,我也可以根据这里的API调用得到他/她的名字,姓氏,中间名等:https:// developers .facebook.com/docs/php/GraphObject /#user-instance-methods.我知道可以获取用户的电子邮件地址和性别,但在之前的链接中,我没有找到任何API调用来获取此信息.
对于Facebook SDK for PHP,获取用户电子邮件地址和性别的API调用是什么?
非常感谢你.
java ×3
dart ×2
algorithm ×1
annotations ×1
aop ×1
dart-mirrors ×1
facebook ×1
haskell ×1
interceptor ×1
php ×1
spring ×1
string ×1