1. 程式人生 > >[華為OJ--C++]088-按位元組擷取字串

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

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

輸入描述:輸入待擷取的字串及長度

輸出描述:擷取後的字串

輸入例子:

我ABC漢DEF

6

輸出例子:

我ABC

演算法實現:
#include <iostream>
#include <string>
using namespace std;

/************************************************ 
 * Author: 趙志乾 
 * Date: 2017-2-16  
 * Declaration: All Rigths Reserved !!! 
 ***********************************************/ 

int main()
{
	string instr;
	int len;
	cin>>instr;
	cin>>len;
    
	int i=0;int j=0;int odd=0;
	for(  ;j<len;j++)
	{
		if(instr[j]<0)
			odd++;
		if(odd%2==0)
			i=j;
	}

	string ret(i+1,0);
	for(int k=0;k<i+1;k++)
		ret[k]=instr[k];

	cout<<ret<<endl;
	return 0;
}

關鍵點:

一個漢字的ascill標準儲存時佔用兩個字元,且所佔用的每個位元組的ascill編碼的最高位為1,也即是小於0。用這個特性來檢測一個位元組是否屬於漢字。

執行結果展示:



相關推薦

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

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

機試108題】位元組擷取字串

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

php中位元組擷取字串方法,(漢字佔兩個位元組,字母佔一個位元組,頁面編碼必須utf-8)

function esub($str, $length = 0) { if($length < 1){ return $str; } //計算字串長度 $strlen = (strlen($str) + mb_str

java位元組擷取字串

首先分編碼格式,gbk和gb2312公用一套方案,,而u8是另一套。 為什麼呢,因為gbk和gb2312是兩個位元組表示一個漢字,前者兩個位元組的值都是負數,後者第二個數有時為正,比如(琲bei) 那u8呢,是三個位元組表示一個漢字,所以判斷條件比gbk多了一點。

Java 位元組擷取字串

public class MyTest1 { @Test public void test() { String s = "112我似そして懂12非懂2"; s = "てそしてててて

如何實現位元組擷取字串(中文佔2位元組,英文佔1位元組,substring())?

str = "我a智慧abc" substring(str, 5) 會擷取成為 “我a智慧a” 現在要實現中文佔2位元組,英文佔1位元組,按位元組擷取 ,輸出應該為"我a智" public class SubString{ /** * */ public

OJ之N皇后問題(C++程式碼)

1問題描述 N皇后問題,就是如何將國際象棋中的N個皇后放在N*N的棋盤上而不會互相攻擊,是一種通過列舉,再遞迴、回溯的思想。 2思路 以8皇后問題為例,可知在8*8二維陣列中,每個點用data[i][j]表示(0 <= i,j <= 7)。

【每天演算法4】編寫一個擷取字串的函式,輸入一個字串位元組數,輸出位元組擷取字串

題目: 編寫一個擷取字串的函式,輸入為一個字串和位元組數,輸出為按位元組擷取的字串。   但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個”。 package com.sw.su

編寫一個擷取字串的函式,輸入一個字串位元組數, 輸出位元組擷取字串。 但是要保證漢字不被截半個。

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

OJ-數字顛倒-C語言實現/Java實現

數字顛倒 題目描述 描述: 輸入一個整數,將這個整數以字串的形式逆序輸出 程式不考慮負數的情況,若數字含有0,則逆序形式也含有0,如輸入為100,則輸出為001 輸入描述: 輸入

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個字符串組成,定義這個字符串的“美麗度”是其全部字母“美麗度”的總和。 每一個字母都

手機WebView長不能複製,記一次少見奇葩bug解決之旅

風起 接到反饋,說是之前一個老專案的詳情頁(html)長按不能複製了(華為mate9),uh…不記得需求裡有長按複製功能,不過現在原生webview是支援長按複製的,所以就是個預設需求了,那這個bug是要改的。 拿手邊的華為和小米試了一下,的確不能複製,然後到模擬器上跑了下,uh…長

筆試——C++字串四則運算的實現--C++ 遞迴實現

華為筆試——C++字串四則運算的實現 題目:字串四則運算的實現 有字串表示的一個四則運算表示式,要求計算出該表示式的正確數值。四則運算即:加減乘除"+-*/",另外該表示式中的數字只能是1位(數值範圍0~9),運算不用括號。另若有不能整除的情況,按向下取整處理,eg: 8/3得出值為2。

尋找01矩陣中的最大子矩陣--OJ機試--java語言版

題目描述: 在一個M * N的矩陣中,所有的元素只有0和1,從這個矩陣中找出一個面積最大的全1子矩陣,所謂最大是指元素1的個數最多。 輸入: 輸入可能包含多個測試樣例。 對於每個測試案例,輸入的第一行

oj素數伴侶

題目描述若兩個正整數的和為素數,則這兩個正整數稱之為“素數伴侶”,如2和5、6和13,它們能應用於通訊加密。現在密碼學會請你設計一個程式,從已有的N(N為偶數)個正整數中挑選出若干對組成“素數伴侶”,挑選方案多種多樣,例如有4個正整數:2,5,6,13,如果將5和6分為一組

oj【IP地址判斷有效性】

#include <iostream> #include <cstring> #include<string> using namespace std; bool isIPAddressValid(const char* pszIPAddr) { if(pszIPA

oj】超長正整數想加

問題描述:請設計一個演算法完成兩個超長正整數的加法。 介面說明  /*  請設計一個演算法完成兩個超長正整數的加法。  輸入引數:  String addend:加數  String augend:被

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

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

oj 公共字串計算

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