小编Chr*_*heD的帖子

构建给定文本中最常用单词的ASCII图表

挑战:

构建给定文本中最常用单词的ASCII图表.

规则:

  • 只接受a-zA-Z(字母字符)作为单词的一部分.
  • 忽略套管(She== she为了我们的目的).
  • 忽略以下的话(非常苛刻,我知道): the, and, of, to, a, i, it, in, or, is
  • 澄清:考虑don't:这将被视为在范围2不同"单词" a-zA-Z:(dont).

  • 可选(现在正式更改规范为时已晚)您可以选择删除所有单字母"单词"(这可能会缩短忽略列表).

解析给定的text(读取通过命令行参数指定的文件或管道输入;假设us-ascii)并构建word frequency chart具有以下特征的a:

  • 显示22个最常见单词的图表(另请参见下面的示例)(按降序频率排序).
  • 条形width表示单词的出现次数(频率)(按比例).附加一个空格并打印单词.
  • 确保这些条形(加上空格 - 单词空格)始终适合:bar+ [space]+ word+ [space]应始终<= 80字符(确保考虑可能不同的条形和字长:例如:第二个最常见的单词可能要长得多)第一个虽然频率差别不大).在这些约束条件下最大化条宽,并适当缩放条(根据它们所代表的频率).

一个例子:

这个例子的文本可以在这里找到(爱丽丝梦游仙境,刘易斯卡罗尔).

此特定文本将产生以下图表:

 _________________________________________________________________________
|_________________________________________________________________________| she 
|_______________________________________________________________| …

language-agnostic code-golf

156
推荐指数
26
解决办法
3万
查看次数

Code Golf:玩俄罗斯方块

基础:

考虑以下tetrominoes和空洞的比赛场地:

                                            0123456789
    I   O    Z    T    L    S    J         [          ]
                                           [          ]
    #   ##   ##   ###  #     ##   #        [          ]
    #   ##    ##   #   #    ##    #        [          ]
    #                  ##        ##        [          ]
    #                                      [          ]
                                           [==========]

比赛场地的尺寸是固定的.顶部的数字仅用于表示列号(也可参见输入).

输入:

1.您将获得一个特定的游戏区域(基于上述内容),该区域已经部分填充了四联蛋白(这可以在单独的文件中或通过标准输入提供).

样本输入:

[          ]
[          ]
[          ]
[          ]
[ #    #  #]
[ ## ######]
[==========]

2.您将获得一个字符串,该字符串描述(以空格分隔)哪个tetromino插入(和下拉)哪一列.Tetrominoes不需要旋转.输入可以从stdin读取.

样本输入:

T2 Z6 I0 T7
Run Code Online (Sandbox Code Playgroud)

您可以假设输入是"格式良好的"(或者当它不是时会产生未定义的行为).

产量

渲染结果字段("完整"行必须消失)并打印分数计数(每个丢弃的行占10个点).

基于上面的示例输入的示例输出:

[          ]
[          ]
[          ]
[# …

language-agnostic code-golf rosetta-stone

83
推荐指数
10
解决办法
6736
查看次数

对解除引用的指针进行后递增?

试图理解C中指针的行为,我对以下内容感到有点惊讶(下面的示例代码):

#include <stdio.h>

void add_one_v1(int *our_var_ptr)
{
    *our_var_ptr = *our_var_ptr +1;
}

void add_one_v2(int *our_var_ptr)
{
    *our_var_ptr++;
}

int main()
{
    int testvar;

    testvar = 63;
    add_one_v1(&(testvar));         /* Try first version of the function */
    printf("%d\n", testvar);        /* Prints out 64                     */
    printf("@ %p\n\n", &(testvar));

    testvar = 63;
    add_one_v2(&(testvar));         /* Try first version of the function */
    printf("%d\n", testvar);        /* Prints 63 ?                       */
    printf("@ %p\n", &(testvar));   /* Address remains identical         */
}
Run Code Online (Sandbox Code Playgroud)

输出:

64
@ 0xbf84c6b0

63
@ 0xbf84c6b0 …
Run Code Online (Sandbox Code Playgroud)

c pointers operator-precedence

51
推荐指数
6
解决办法
4万
查看次数

Code Golf:连接点

你可能还记得你小时候的这些图画,但现在是时候让电脑画出来了(完整的ascii辉煌).玩得开心!

描述:

输入是多行(由换行符终止),描述"字段".这个领域散布着"数字"(由空格分隔).所有行都可以被认为是相同的长度(您可以将空格填充到末尾).

  • 数字总是从1开始
  • 它们遵循自然数的排序:每个"下一个数字"都以1递增
  • 每个数字左右都有(至少)一个空格

任务:

以这些数字的自然顺序 绘制线条(1 -> 2 -> 3 -> ...N)(假设N <= 99),具有以下特征:

  1. 用' +'字符替换数字
  2. 对于水平线:使用' -'
  3. 垂直线:使用' |'
  4. 向左或向下或向右和向上: /
  5. 向左或向上或向右和向下: \

重要笔记:

  1. 当绘制类型为4和5的线时,您可以假设(给定点与坐标x1,y1和x2,y2连接)distance(x1,x2) == distance(y1,y2).或换句话说(如用户jball评论):"非水平或垂直对齐的连续元素始终与斜杠或反斜杠的斜率对齐".

  2. 重要的是遵循点连接的顺序(较新的线可以击出较旧的线).

- 样本输入1 -

                                  8 

                                  7  6 
                      10       9       

                                        5            

                                     3  4        
                 11 

                   12                       13    
          1                          2                     

- 样本输出1 -

                                 +                                
                                /|                                
                               / +--+                             
                     +--------+      \                            
                    /                 \                           
                   /                   +                          
                  /                    |                          
                 /                  +--+                          
                +                   |                             
                 \                  |                             
                  +------------------------+                      
         +--------------------------+        

- …

language-agnostic code-golf rosetta-stone

49
推荐指数
10
解决办法
3989
查看次数

简短(有用)的python片段

本着"你最有用的C/C++代码片段"的精神- 线程:

你们有没有(通常)使用的简短的单功能Python片段,并希望与StackOverlow社区分享?请保持条目较小(可能在25行以下?)并且每个帖子只提供一个示例.

我将从一个简短的片段开始,我不时使用它来计算python项目中的sloc(源代码行):

# prints recursive count of lines of python source code from current directory
# includes an ignore_list. also prints total sloc

import os
cur_path = os.getcwd()
ignore_set = set(["__init__.py", "count_sourcelines.py"])

loclist = []

for pydir, _, pyfiles in os.walk(cur_path):
    for pyfile in pyfiles:
        if pyfile.endswith(".py") and pyfile not in ignore_set:
            totalpath = os.path.join(pydir, pyfile)
            loclist.append( ( len(open(totalpath, "r").read().splitlines()),
                               totalpath.split(cur_path)[1]) )

for linenumbercount, filename in loclist: 
    print "%05d lines in %s" % (linenumbercount, filename)

print …
Run Code Online (Sandbox Code Playgroud)

python code-snippets

46
推荐指数
12
解决办法
3万
查看次数

通过PostgreSql函数搜索'grep-alike'

在重构PostgreSql函数时(更具体地说:在搜索'unused'函数时),有一个函数可以在函数定义中搜索特定的字符串.

有谁知道这是否是最好的方法(尝试'grep' - 搜索函数定义)还是有其他方法可用?

如何实现此功能?

postgresql refactoring stored-functions

15
推荐指数
2
解决办法
8854
查看次数

C#编译器或JIT可以优化lambda表达式中的方法调用吗?

我在另一个StackOverflow问题开始(在评论中)的讨论后开始这个问题,我很想知道答案.考虑以下表达式:

var objects = RequestObjects.Where(r => r.RequestDate > ListOfDates.Max());
Run Code Online (Sandbox Code Playgroud)

ListOfDates.Max()在这种情况下,是否有任何(性能)​​优势可以移出Where子句的评估,还是1.编译器或2. JIT优化它?

我相信C#只会在编译时进行常量折叠,并且可以认为ListOfDates.Max()在编译时是不可知的,除非ListOfDates本身在某种程度上是常量.

也许还有另一个编译器(或JIT)优化,确保只评估一次?

c# optimization lambda jit constant-expression

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

使用NumPy从文件读取非统一数据到数组

假设我有一个如下所示的文本文件:

33 3
46 12
23 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15 25 16 26 16 27 16 28 16 29 16
33 17 33 18 33 19 34 17 34 18 34 19 35 17 35 18 35 19 36 19
41 32 41 33 42 32 42 33

我想将每一行读入一个单独的整数数组,如(伪代码):

for line in textfile: …
Run Code Online (Sandbox Code Playgroud)

python file-io numpy

13
推荐指数
2
解决办法
2万
查看次数

ADO.NET:将DataTable转换为DataRows数组

我正在使用ADO.NET和C#,我想将DataTable对象转换为DataRows数组.这样做的优雅方式是什么?

c# ado.net

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

自.NET 4.0以来XAML绑定日期时对象的自动更正行为?

在将应用程序从.NET 3.5引入.NET 4.0时,我遇到了这个特殊的问题.

(文化是nl-BE)

我将这样的TextBox(在XAML中)与PropertyChanged上的UpdateSourceTrigger绑定到DateTime值(LostFocus按预期工作,但需要进行类型验证):

<TextBox Height="23" Margin="146,0,105,97.04" Name="txb_Geboortedatum" VerticalAlignment="Bottom">
        <TextBox.Text>
            <Binding Path="Geboortedatum" StringFormat="d" 
                     UpdateSourceTrigger="PropertyChanged">
                <Binding.ValidationRules>
                    <ExceptionValidationRule />
                </Binding.ValidationRules>
            </Binding>
        </TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)

现在,当这个文本框的内容是(例如)10/12/2000并且我想将它编辑为09/03/1981 时,当我将光标放在2000年底并开始'退格时' 发生了一些令人讨厌的自动修正 '离开年份值(当只有'2000'的第一个数字('2')自动离开时 - 包括光标跳转 - 再次变为2002).我可以禁用此自动更正吗?

我似乎无法找到具体介绍此行为的内容.FormatString=c对于货币值,也会出现相同的"问题" .

到目前为止我尝试过的:

  1. 将FormatString更改为更明确的{0}{dd/MM/yyyy}(同样的问题:当剩下2位数字时开始自动更正).
  2. 禁用我已添加到App.xaml.cs的以下代码段:

    FrameworkElement.LanguageProperty.OverrideMetadata(
        typeof(FrameworkElement), 
        new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(
            CultureInfo.CurrentCulture.IetfLanguageTag)));
    
    Run Code Online (Sandbox Code Playgroud)

这个片段的原因首先包含在内:看一下这个链接.

我错过了一些明显的东西吗?我无法在3.5中重现这一点.我是否真的必须推出自己的ValueConverters才能使其正常工作?这看起来像是StringFormat在3.5 sp 1中引入的退步.

DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d')确实的输出看起来略有不同,但没有什么可以立即解释行为(可能不相关):

.NET 3.5        .NET 4.0

d/MM/yyyy       d/MM/yyyy
d/MM/yy         d/MM/yy
dd-MM-yy        dd-MM-yy
dd.MM.yy        dd.MM.yy
yyyy-MM-dd      dd.MMM.yyyy
                yyyy-MM-dd

.net c# wpf xaml .net-4.0

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