小编Mus*_*afa的帖子

如何用lambda解决这个问题

这是个问题:

"编写一个程序,从文本中提取所有的回文词,如ABBA","lamal","exe"."

这是我的代码:

public static List<string> FindPalindromes()
    {
        string text = String.Empty;
        Console.Write("Enter the text:\n\t");
        text = Console.ReadLine();

        List<string> answer = new List<string>();

        string[] words = text.Split('.', ',', ' ', ':', '/', '\\', '"', ';');
        foreach(string word in words.Where(
                (string x) =>
                {
                    if(String.Equals(x, x.Reverse()))
                        return true;
                    else
                        return false;
                }
            ))
            answer.Add(word);

        return answer;
    }
Run Code Online (Sandbox Code Playgroud)

现在我认为如果我将where方法中的逻辑分离为一个返回布尔值并检查单个单词是否为回文的单独方法,它会更加整洁.但我想尝试使用lambda.

无论如何,这段代码不会返回任何内容.我怀疑问题出在if条件中.

c# lambda

3
推荐指数
1
解决办法
188
查看次数

谁应该捕获异常,呼叫者或被呼叫者

我目前正在研究代表,并从代码项目和代理和事件的6个重要用途中阅读此页面.我试图在这个类中实现代码的逻辑.

class MathOp
{
    public delegate int OperationsDelegate(int x, int y);
    private OperationsDelegate Del;

    public OperationsDelegate GetDelegate()
    {
        Console.WriteLine("\n\tEnter 1 for Addition\n\tEnter 2 for Subtraction\n\tEnter 3 for Multiplication\n\tEnter 4 for Division");
        int input;
        try
        {
            input = Convert.ToInt32(Console.ReadLine());
            switch(input)
            {
                case 1:
                    Del = Add;
                    break;
                case 2:
                    Del = Sub;
                    break;
                case 3:
                    Del = Mul;
                    break;
                case 4:
                    Del = Div;
                    break;
            }


        }
        catch(FormatException error) { Console.WriteLine(error.Message);  }
        catch(OverflowException error) { Console.WriteLine(error.Message); }
        catch(NullReferenceException error) …
Run Code Online (Sandbox Code Playgroud)

c#

1
推荐指数
1
解决办法
451
查看次数

我希望我已经创建的 virtualenv 能够访问系统包

我最近在 ubuntu 14.04 上安装了 opencv3。我遵循的教程出于某种原因使用了 virtualenv。现在我想将 opencv 从虚拟环境移至我的全局环境。原因是我似乎无法使用安装在我的全局环境中的软件包,这让我感到不安。那么我该怎么做呢?

python opencv virtualenv

1
推荐指数
1
解决办法
1162
查看次数

std :: cin of char导致无限循环

我在切换之前的cin之后使用了cout语句来确定我遇到了第二个数字和字符op的问题,并且出于某种原因我进入了无限循环!我有一种感觉,我在语法上犯了一个小错误,但我无法弄清楚它是什么.

#include<iostream>
using namespace std;
int main()
{
    float a, b;
    char op, ans;
    do {
    cout << "Enter first number, operator, second number: ";
    cin >> a;
    cin >> b;
    cin >> op;
    cout << "first number is: " << a << "second number is: " << b << "operator is: " << op;
    switch (op) {
    case '/':
        cout << "answer = " << a / b << endl;
        break;
    case '*':
        cout << "answer = " << …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
381
查看次数

python如何使这个代码更pythonic?

所以我从麻省理工学院的"计算机科学与编程导论"讲座18中得到了这段代码.代码很少遵循pythonic风格.看一下这个

class Item(object):

def __init__(self, n, v, w):
    self.name = n
    self.value = float(v)
    self.weight = float(w)

def getName(self):
    return self.name

def getValue(self):
    return self.value

def getWeight(self):
    return self.weight

def __str__(self):
    result = '<' + self.name + ', ' + str(self.value) + ', '\
             + str(self.weight) + '>'
    return result



def buildItems():
    names = ['clock', 'painting', 'radio', 'vase', 'book',
             'computer']
    vals = [175,90,20,50,10,200]
    weights = [10,9,4,2,1,20]
    Items = []
    #for i in range(len(vals)):
    #    Items.append(Item(names[i], vals[i], weights[i]))

    return Items
Run Code Online (Sandbox Code Playgroud)

如何将函数的注释代码更改为pythonic代码? …

python

-1
推荐指数
1
解决办法
86
查看次数

标签 统计

c# ×2

python ×2

c++ ×1

lambda ×1

opencv ×1

virtualenv ×1