SPOJ 问题 - 这里出了啥问题?

Posted

技术标签:

【中文标题】SPOJ 问题 - 这里出了啥问题?【英文标题】:SPOJ question - WHat is going wrong here?SPOJ 问题 - 这里出了什么问题? 【发布时间】:2011-06-24 16:54:53 【问题描述】:

我正在回答这个 spoj 问题: http://www.spoj.pl/problems/JAVAC/

我用 C++ 对提交进行了编码。我把它贴在下面。该提交始终给出错误的答案。我找不到会失败的测试用例。谁能帮帮我?

非常感谢。

#include<iostream>
#include<string>
#include<algorithm>

using namespace std;

char *ans;

bool iscapital(char c)

  if(c >='A' && c <='Z')
    return true;
  else
    return false;


string translate(string current)
 
  ans = new char[2*current.length() + 1];
  int jflag = 0, cflag = 0,j = 0, i = 0;

  if(iscapital(current[0]))
  
    return "Error!";
  

  while(i < current.length())
  
    if(current[i] !='_')
    
      if(!(current[i] >= 'A' && current[i] <= 'Z'))
      
    ans[j] = current[i];
    i++;
    j++;
      
    

    if(current[i] == '_')
    
      if(jflag == 1)
    return "Error!";

      cflag = 1;
      i++;
      if(i < current.length())
      
    //convert to capital
    if(iscapital(current[i]))
      return "Error!";

    ans[j] = (char)((int)current[i] - 32);
    i++;
    j++;
      
    

    if(iscapital(current[i]))
    
      if(cflag == 1)
    return "Error!";

      jflag = 1;

      ans[j] = '_';
      j++;
      ans[j] = (char)((int)current[i] + 32);
      j++;
      i++;
    
  
  ans[j] = '\0';
  string ret = ans;
  return ret;




int main()


  string current;

  while(cin>>current)
  
    cout<<translate(current)<<endl;
  
  return 0;

【问题讨论】:

我通常不会这么详细地告诉人们如何解决问题,但是这个问题的描述确实非常模糊。祝你好运! 【参考方案1】:

我没有尝试过(从未使用过 SPOJ),但是否可能存在其他无效格式?例如:

123asd

_asd

asd___a

我现在正在弄乱你的代码,看看我能不能让它工作。祝你好运!

编辑:通过!尝试添加以下内容:

    当第一个或最后一个字母为“_”时检测错误

    检测是否有连续的'_'(例如'a__b')

    检测其他字符(例如,'adq21#')

这里的三种情况都应该是错误。干杯!

【讨论】:

非常感谢您指出这一点!从问题描述中,我认为这不是要检查的。谢谢!

以上是关于SPOJ 问题 - 这里出了啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

Swift4 url​​Session Decodable 中的 POST 方法不起作用(这里出了啥问题?)

Express 无法 PUT/DELETE 方法。出了啥问题?

用 Python 写矩阵,用 Torch 读,出了啥问题

使用 Scipy 进行线性回归曲线拟合 - 不知道出了啥问题

mysql变量有问题,我在这里做错了啥?

这里发生了啥?核心数据/iCloud