1. 程式人生 > >字串反轉——來自華為OJ平臺測試基礎篇

字串反轉——來自華為OJ平臺測試基礎篇



/*
 * 字串反轉
 * 與字元逆序一樣,是同一個程式
 * 描述:  寫出一個程式,接受一個字串,然後輸出該字串反轉後的字串。例如:
 * 知識點:  陣列,指標 
 * 題目來源:  內部整理 
 * 練習階段:  初級 
 * 執行時間限制: 10Sec
 * 記憶體限制: 128MByte
 * 輸入: 
 * 輸入N個字元
 * 輸出: 
 * 輸出該字串反轉後的字串 
 * 樣例輸入: abcd                   
 * 樣例輸出: dcba
*/

#include <iostream>
#include <string>

using namespace std;

void Input(std::string &str,int &strlen );
bool Isvalid(int strlen);
void reverse(std::string sourcestr,std::string &deststr,int strlen);
void arrange(std::string &str,int strlen,int &begin,int &end);
void Output(std::string str);

int main()
{
 std::string str;
 std::string deststr;
 int strlen = 0;
 int begin = 0;
 int end = 0;

 Input(str,strlen);

 if(!Isvalid(strlen))
 {
  return -1;
 }

 deststr.reserve(strlen);
 reverse(str,deststr,strlen);

 arrange(deststr,strlen,begin,end);
 Output(deststr);

 system("pause");

 return 0;
}

void Input(std::string &str,int &strlen )
{
 getline(std::cin,str,'\n');
 strlen = str.size();
}

bool Isvalid(int strlen)
{
 if(strlen>100)
 {
  return false;
 }
 return true;
}

void reverse(std::string sourcestr,std::string &deststr,int strlen)
{
 for(int i=strlen-1;i>=0;i--)
 {
  char c = sourcestr.at(i);
  deststr.push_back(c);
 }
 return;
}

void arrange(std::string &str,int strlen,int &begin,int &end)
{
 char* p = " \t\n";

 for(int i=0;i<strlen;i++)
 {
  if(str.at(i)!=p[0] && str.at(i)!= p[1] && str.at(i)!=p[2])
  {
   begin = i;
   break;
  }
 }

 for(int j=strlen-1;j>=0;j--)
 {
  if(str.at(j)!=p[0] && str.at(j)!= p[1] && str.at(j)!=p[2])
  {
   end = j;
   break;
  }
 }

 str = str.substr(begin,(end-begin+1));

 return;
}

void Output(std::string str)
{
 std::cout << str << endl;
}

相關推薦

字串反轉——來自OJ平臺測試基礎

 /*  * 字串反轉  * 與字元逆序一樣,是同一個程式  * 描述:  寫出一個程式,接受一個字串,然後輸出該字串反轉後的字串。例如:  * 知識點:  陣列,指標   * 題目來源:  內部整理   * 練習階段:  初級   * 執行時間限制: 10Se

TR069網管測試ITMS平臺(內部測試使用)

ins 內部測試 配置 安裝步驟 sta and ger 虛擬機ip 瀏覽器 聲明:本篇華為ITMS平臺僅用於學習和測試使用,如果需要商用,請購買正版軟件! 原創作品,轉載請註明出處,嚴禁非法轉載或者用於商業目的! email:[email protected] 一.

oj 公共字串計算

此題是經典的動態規劃的題:設c[i][j] 表示第一個字串從開始到 i 的位置,和第二個字串從開始到 j 的位置的最長公共字串的長度,那麼我們可以根據題目得知一下條件 1.如果pFirstStr[i+1]==pSecondStr[j+1],那麼c[i+1][j+1]=c[

oj 字串萬用字元

本題,其實和分蘋果的題有那麼一丟丟的類似,在此提供兩種能通過的解法(主要就是對於‘*’的處理) 1.這種解法其實是錯誤的,但是也要說說他的思路,對於 ‘*’ 他直接找 ‘*’ 下一個字元是否出現在需要匹配的串中,並且找到那個位置,認為此位置到之前就是‘*’所匹配的內容。

[OJ--C++]088-按位元組擷取字串

題目描述:編寫一個擷取字串的函式,輸入為一個字串和位元組數,輸出為按位元組擷取的字串。但是要保證漢字不被截半個,如"我ABC"4,應該截為"我AB",輸入"我ABC漢DEF"6,應該輸出為"我ABC"

OJ字串加解密

題目描述 1、對輸入的字串進行加解密,並輸出。 2加密方法為: 當內容是英文字母時則用該英文字母的後一個字母替換,同時字母變換大小寫,如字母a時則替換為B;字母Z時則替換為a; 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0; 其他字元不做變化。 3

[oj]計算公共字串

#include <iostream> #include <string> using namespace std; int main(){ int getCommonStrLength(string s1,string s2);

OJ——字串萬用字元

題目描述   問題描述:在計算機中,萬用字元一種特殊語法,廣泛應用於檔案搜尋、資料庫、正則表示式等領域。現要求各位實現字串萬用字元的演算法。 要求: 實現如下2個萬用字元: *:匹配0個或以上的字元(字元由英文字母和數字0-9組成,不區分大小寫

oj 字串個數統計&&數字顛倒&&字串翻轉&&字元逆序&&求int型資料在記憶體中儲存時1的個數

同樣只上程式,都是簡單題 #include<iostream> using namespace std; int main() { int in[128], count = 0; char n,temp[100]; memset(in, 0, sizeo

OJ——公共字串計算

公共字串計算 題目描述 題目標題: 計算兩個字串的最大公共字串的長度,字元不區分大小寫 詳細描述: 介面說明 原型: int getCommonStrLength(char * pFirstStr, 

OJ】公共字串計算

描述: 計算兩個字串的最大公共字串的長度,字元不區分大小寫。 知識點:  字串,查詢 題目來源:  內部整理  練習階段:  初級  執行時間限制: 10Sec 記憶體限制: 128MByte 輸入:  輸入兩個字串 輸出:  輸出一個整數 將這個整數以字串的形式逆

OJ字串加密

有一種技巧可以對資料進行加密,它使用一個單詞作為它的密匙。下面是它的工作原理:首先,選擇一個單詞作為密匙,如TRAILBLAZERS。如果單詞中包含有重複的字母,只保留第1個,其餘幾個丟棄。現在,修改過的那個單詞死於字母表的下面,如下所示:A B C D E F G H I J K L M N O P Q 

oj 字串匹配

用一個數組儲存每個字元出現的個數然後,然後進行判斷就行! #include<iostream> #include<string> using namespace std; int main() { int trans[128]; memset(

oj 簡單密碼破解&&汽水瓶&&刪除字串中出現次數最少的字元&&字串排序

這四道題就不上圖了,因為太簡單,就四道題湊在一起了,應該放在簡單題中。 第一題.這道題只需要注意字母‘Z’時候的轉換,直接上程式碼 #include<iostream> #include<string> using namespace std;

OJ字串排序

採用氣泡排序(穩定排序): 法1: 遇到非字母字元時,處理要小心。 #include<iostream> #include<string> using namespace std; int main() { string s,str;

oj:計算字串最後一個單詞的長度,單詞用空格隔開

/* 描述 計算字串最後一個單詞的長度,單詞以空格隔開。 知識點 字串,迴圈 執行時間限制 0M 記憶體限制 0 輸入 一行字串,長度小於128。 輸出 整數N,最後一個單詞的長度。

OJ:數字顛倒

ring pan mod ber ack art ava scan end 將數字轉成一個字符串即可了。 import java.util.Scanner; public class convertNumber { public static void main(St

OJ 名字美麗度

list tty res mod set 範圍 重載 物聯網 實例 這是一道坑爹的題目,為什麽這麽說,且看我慢慢分析…… 題目例如以下: 給出一個名字,該名字有26個字符串組成,定義這個字符串的“美麗度”是其全部字母“美麗度”的總和。 每一個字母都

未來和安卓系統說再見,新手機系統測試、體驗中!

大家都知道,華為已經有自己的海思麒麟晶片了,並且經過這麼多年的研發麒麟的引數已經成為一線處理器。對於華為來說,成為全球智慧手機廠商前三多多少少也有處理器的原因。那麼,大家是否有想過如果華為成為自己研發處理器的公司,自已研發系統的公司,是不是能夠成為硬體軟體一體的生態王者? 好訊息是,華為已經開始測試新的

騎士智慧科技M5310模組連線OC平臺實現資料互動

一、實驗目的 使用騎士智慧科技M5310模組加USB轉串列埠,連線到華為OC平臺上,並實現溫溼度資料互動 二、準備工作 硬體:騎士智慧科技M5310模組 + 移動NB卡、USB轉串列埠、天線 軟體:C:\AAA\NBIoT&LoraWAN\騎士智慧科技技